diff options
author | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-01-17 12:47:21 +0000 |
---|---|---|
committer | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-01-17 12:47:21 +0000 |
commit | 8196f2633e6c0030fd19f7c04c8b9b1558badc8e (patch) | |
tree | f456eba75e1fca79369b48f11bee765672fe7bff /gcc/config/i386/sse.md | |
parent | 37e66d5b429a533cb00dd79e3c6c7f717df288ee (diff) | |
download | gcc-8196f2633e6c0030fd19f7c04c8b9b1558badc8e.tar.gz |
Correct mask operand for AVX mask load/store.
gcc/
2011-01-17 H.J. Lu <hongjiu.lu@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.lu@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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168899 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/sse.md')
-rw-r--r-- | gcc/config/i386/sse.md | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index a942a2b1717..c6636a6d01e 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -11938,7 +11938,7 @@ [(set (match_operand:AVXMODEF2P 0 "register_operand" "=x") (unspec:AVXMODEF2P [(match_operand:AVXMODEF2P 1 "memory_operand" "m") - (match_operand:AVXMODEF2P 2 "register_operand" "x") + (match_operand:<avxpermvecmode> 2 "register_operand" "x") (match_dup 0)] UNSPEC_MASKLOAD))] "TARGET_AVX" @@ -11951,7 +11951,7 @@ (define_insn "avx_maskstore<ssemodesuffix><avxmodesuffix>" [(set (match_operand:AVXMODEF2P 0 "memory_operand" "=m") (unspec:AVXMODEF2P - [(match_operand:AVXMODEF2P 1 "register_operand" "x") + [(match_operand:<avxpermvecmode> 1 "register_operand" "x") (match_operand:AVXMODEF2P 2 "register_operand" "x") (match_dup 0)] UNSPEC_MASKSTORE))] |