https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61618
--- Comment #3 from Stupachenko Evgeny <evstupac at gmail dot com> ---
The patch fix the fail:
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;
Submitted for review:
https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00182.html