The following patch should fix 61618 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61618
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 8046c67..2cffcef 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -43211,12 +43211,10 @@ expand_vec_perm_pblendv (struct expand_vec_perm_d *d) bool ok; /* Use the same checks as in expand_vec_perm_blend, but skipping - AVX2 as it requires more than 2 instructions for general case. */ + AVX float case and AVX2 as they require more than 2 instructions. */ if (d->one_operand_p) return false; - if (TARGET_AVX && (vmode == V4DFmode || vmode == V8SFmode)) - ; - else if (TARGET_SSE4_1 && GET_MODE_SIZE (vmode) == 16) + if (TARGET_SSE4_1 && GET_MODE_SIZE (vmode) == 16) ; else return false; Evgeny On Mon, Jun 9, 2014 at 11:49 PM, Richard Henderson <r...@redhat.com> wrote: > On 06/09/2014 12:10 PM, Evgeny Stupachenko wrote: >> Nice catch. >> Patch with corresponding changes: > > Looks ok with an appropriate changelog. > > > r~