summaryrefslogtreecommitdiff
path: root/gcc/config/i386/avx512fintrin.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-12-10 10:00:50 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2014-12-10 10:00:50 +0100
commit092444af0474ed194abe53ea7cbd950dd7e2cdbd (patch)
tree3150dd9808bf96ca60db0afc0b8e10d9b8d861d3 /gcc/config/i386/avx512fintrin.h
parentf2864cc4e11bd3a72efbf44b5f77eddd0bdeb37c (diff)
downloadgcc-092444af0474ed194abe53ea7cbd950dd7e2cdbd.tar.gz
re PR target/63594 (ICE: in ix86_vector_duplicate_value, at config/i386/i386.c:39831 with -mavx512f)
PR target/63594 * config/i386/sse.md (vec_dupv4sf): Move after <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern. (*vec_dupv4si, *vec_dupv2di): Likewise. (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ... (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this pattern. (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW is set too). * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_PBROADCASTQ256_MEM_MASK, IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and IX86_BUILTIN_PBROADCASTQ512_MEM. (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask, __builtin_ia32_pbroadcastq256_gpr_mask and __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask regardless of OPTION_MASK_ISA_64BIT. * config/i386/avx512fintrin.h (_mm512_set1_epi64, _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask builtins regardless of whether TARGET_64BIT is defined or not. * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64, _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64): Likewise. From-SVN: r218565
Diffstat (limited to 'gcc/config/i386/avx512fintrin.h')
-rw-r--r--gcc/config/i386/avx512fintrin.h19
1 files changed, 0 insertions, 19 deletions
diff --git a/gcc/config/i386/avx512fintrin.h b/gcc/config/i386/avx512fintrin.h
index 66f51999345..b4842b26d8b 100644
--- a/gcc/config/i386/avx512fintrin.h
+++ b/gcc/config/i386/avx512fintrin.h
@@ -3603,47 +3603,28 @@ extern __inline __m512i
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_set1_epi64 (long long __A)
{
-#ifdef TARGET_64BIT
return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A,
(__v8di)
_mm512_undefined_si512 (),
(__mmask8)(-1));
-#else
- return (__m512i) __builtin_ia32_pbroadcastq512_mem_mask (__A,
- (__v8di)
- _mm512_undefined_si512 (),
- (__mmask8)(-1));
-#endif
}
extern __inline __m512i
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A)
{
-#ifdef TARGET_64BIT
return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A, (__v8di) __O,
__M);
-#else
- return (__m512i) __builtin_ia32_pbroadcastq512_mem_mask (__A, (__v8di) __O,
- __M);
-#endif
}
extern __inline __m512i
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm512_maskz_set1_epi64 (__mmask8 __M, long long __A)
{
-#ifdef TARGET_64BIT
return (__m512i)
__builtin_ia32_pbroadcastq512_gpr_mask (__A,
(__v8di) _mm512_setzero_si512 (),
__M);
-#else
- return (__m512i)
- __builtin_ia32_pbroadcastq512_mem_mask (__A,
- (__v8di) _mm512_setzero_si512 (),
- __M);
-#endif
}
extern __inline __m512