http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53435
Bug #: 53435 Summary: (ix86_expand_vec_perm) and (ix86_expand_vec_perm) do not pass arguments to avx2_permvar8s[f,i] correctly Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: aivch...@gmail.com CC: areg.melikadam...@gmail.com, hjl.to...@gmail.com, kirill.yuk...@intel.com, ubiz...@gmail.com Target: i?86-*-* x86_64-*-* Seems that after: commit 8da8a06b586ddd9511b5c5c83e2c28ca8d7613a8 Author: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu Apr 12 18:37:42 2012 +0000 PR target/52932 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second argument type to __m256i. Update call to __builtin_ia32_permvarsf256. ... (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2. ... (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and gen_avx2_permvarv8sf. (expand_vec_perm_pshufb): Ditto. gcc.c-torture/execute/vshuf-v* and gcc.dg/torture/pr45720.c fail. The problem is that not everything that had to be changed was changed to use the second argument as __m256i. Please take a look at the attached patch that should fix those problems