http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607
--- Comment #25 from Marc Glisse <marc.glisse at normalesup dot org> 2012-03-31 09:37:51 UTC --- The test for AVX2 in expand_vec_perm_interleave2 might be too strict. For the V4DF shuffle 4,0,2,6, removing that check lets the compiler generate a nice vunpcklpd+vpermilpd (as opposed to 3 insn with my patch and 5+ without). The expansion of dfinal is already protected (so the function returns false for 4,2,0,6), I haven't checked whether something else (dremap?) needs protecting, but it doesn't look like it.