http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607
--- Comment #28 from Marc Glisse <marc.glisse at normalesup dot org> 2012-04-11 16:48:47 UTC --- A difficulty I hadn't foreseen is that the code that canonicalizes permutations (and in particular checks if one of the operands is unused) is in ix86_expand_vec_perm_const. So if I ask expand_vec_perm_1 to generate the 2-operand 0,1,2,3 permutation, it will happily generate vperm2f128 with immediate 16 without noticing that it is the identity on the first operand. I should probably move that code into its own function so I can call it before expand_vec_perm_1.