http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47318
--- Comment #3 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-01-17 13:10:22 UTC --- Author: hjl Date: Mon Jan 17 13:10:18 2011 New Revision: 168900 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=168900 Log: Correct mask operand for AVX mask load/store. gcc/ 2011-01-17 H.J. Lu <hongjiu...@intel.com> Backport from mainline 2011-01-17 H.J. Lu <hongjiu...@intel.com> PR target/47318 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i. (_mm_maskstore_pd): Likewise. (_mm_maskload_ps): Likewise. (_mm_maskstore_ps): Likewise. (_mm256_maskload_pd): Change mask to __m256i. (_mm256_maskstore_pd): Likewise. (_mm256_maskload_ps): Likewise. (_mm256_maskstore_ps): Likewise. * config/i386/i386-builtin-types.def: Updated. (ix86_expand_special_args_builtin): Likewise. * config/i386/i386.c (bdesc_special_args): Update __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps, __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256, __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps, __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256. * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>): Use <avxpermvecmode> on mask register. (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise. gcc/testsuite/ 2011-01-17 H.J. Lu <hongjiu...@intel.com> Backport from mainline 2011-01-17 H.J. Lu <hongjiu...@intel.com> PR target/47318 * gcc.target/i386/avx-vmaskmovpd-1.c: New. * gcc.target/i386/avx-vmaskmovpd-2.c: Likewise. * gcc.target/i386/avx-vmaskmovps-1.c: Likewise. * gcc.target/i386/avx-vmaskmovps-1.c: Likewise. * gcc.target/i386/avx-vmaskmovpd-256-1.c (avx_test): Load mask as __m256i. * gcc.target/i386/avx-vmaskmovpd-256-2.c (avx_test): Likewise. * gcc.target/i386/avx-vmaskmovps-256-1.c (avx_test): Likewise. * gcc.target/i386/avx-vmaskmovps-256-2.c (avx_test): Likewise. Added: branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/avx-vmaskmovpd-1.c branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/avx-vmaskmovpd-2.c branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/avx-vmaskmovps-1.c branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/avx-vmaskmovps-2.c Modified: branches/gcc-4_5-branch/gcc/ChangeLog branches/gcc-4_5-branch/gcc/config/i386/avxintrin.h branches/gcc-4_5-branch/gcc/config/i386/i386-builtin-types.def branches/gcc-4_5-branch/gcc/config/i386/i386.c branches/gcc-4_5-branch/gcc/config/i386/sse.md branches/gcc-4_5-branch/gcc/testsuite/ChangeLog branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/avx-vmaskmovpd-256-1.c branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/avx-vmaskmovpd-256-2.c branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/avx-vmaskmovps-256-1.c branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/avx-vmaskmovps-256-2.c