[Clang][BuiltIn][AVX512]Adding intrinsics for vmovntdqa vmovntpd vmovntps instruction set
Differential Revision: http://reviews.llvm.org/D19529 llvm-svn: 267690
This commit is contained in:
parent
c97eac6555
commit
7c85a8cb46
|
@ -2185,6 +2185,10 @@ TARGET_BUILTIN(__builtin_ia32_kortestzhi, "iUsUs","","avx512f")
|
|||
TARGET_BUILTIN(__builtin_ia32_kunpckhi, "UsUsUs","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_kxnorhi, "UsUsUs","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_kxorhi, "UsUsUs","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_movntdq512, "vV8LLi*V8LLi","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_movntdqa512, "V8LLiV8LLi*","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_movntpd512, "vd*V8d","","avx512f")
|
||||
TARGET_BUILTIN(__builtin_ia32_movntps512, "vf*V16f","","avx512f")
|
||||
|
||||
#undef BUILTIN
|
||||
#undef TARGET_BUILTIN
|
||||
|
|
|
@ -7324,6 +7324,30 @@ _mm512_kxor (__mmask16 __A, __mmask16 __B)
|
|||
return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B);
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS
|
||||
_mm512_stream_si512 (__m512i * __P, __m512i __A)
|
||||
{
|
||||
__builtin_ia32_movntdq512 ((__v8di *) __P, (__v8di) __A);
|
||||
}
|
||||
|
||||
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
||||
_mm512_stream_load_si512 (void *__P)
|
||||
{
|
||||
return __builtin_ia32_movntdqa512 ((__v8di *)__P);
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS
|
||||
_mm512_stream_pd (double *__P, __m512d __A)
|
||||
{
|
||||
__builtin_ia32_movntpd512 (__P, (__v8df) __A);
|
||||
}
|
||||
|
||||
static __inline__ void __DEFAULT_FN_ATTRS
|
||||
_mm512_stream_ps (float *__P, __m512 __A)
|
||||
{
|
||||
__builtin_ia32_movntps512 (__P, (__v16sf) __A);
|
||||
}
|
||||
|
||||
#undef __DEFAULT_FN_ATTRS
|
||||
|
||||
#endif // __AVX512FINTRIN_H
|
||||
|
|
|
@ -5053,3 +5053,28 @@ __mmask16 test_mm512_kxor(__mmask16 __A, __mmask16 __B) {
|
|||
// CHECK: @llvm.x86.avx512.kxor.w
|
||||
return _mm512_kxor(__A, __B);
|
||||
}
|
||||
|
||||
void test_mm512_stream_si512(__m512i * __P, __m512i __A) {
|
||||
// CHECK-LABEL: @test_mm512_stream_si512
|
||||
// CHECK: @llvm.x86.avx512.storent.q.512
|
||||
_mm512_stream_si512(__P, __A);
|
||||
}
|
||||
|
||||
__m512i test_mm512_stream_load_si512(void *__P) {
|
||||
// CHECK-LABEL: @test_mm512_stream_load_si512
|
||||
// CHECK: @llvm.x86.avx512.movntdqa
|
||||
return _mm512_stream_load_si512(__P);
|
||||
}
|
||||
|
||||
void test_mm512_stream_pd(double *__P, __m512d __A) {
|
||||
// CHECK-LABEL: @test_mm512_stream_pd
|
||||
// CHECK: @llvm.x86.avx512.storent.pd.512
|
||||
return _mm512_stream_pd(__P, __A);
|
||||
}
|
||||
|
||||
void test_mm512_stream_ps(float *__P, __m512 __A) {
|
||||
// CHECK-LABEL: @test_mm512_stream_ps
|
||||
// CHECK: @llvm.x86.avx512.storent.ps.512
|
||||
_mm512_stream_ps(__P, __A);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue