[PATCH] D19529: [Clang][BuiltIn][AVX512]Adding intrinsics for vmovntdqa vmovntpd vmovntps
michael zuckerman via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 26 03:33:45 PDT 2016
m_zuckerman created this revision.
m_zuckerman added reviewers: AsafBadouh, igorb, delena.
m_zuckerman added a subscriber: llvm-commits.
http://reviews.llvm.org/D19529
Files:
include/clang/Basic/BuiltinsX86.def
lib/Headers/avx512fintrin.h
test/CodeGen/avx512f-builtins.c
Index: test/CodeGen/avx512f-builtins.c
===================================================================
--- test/CodeGen/avx512f-builtins.c
+++ test/CodeGen/avx512f-builtins.c
@@ -5053,3 +5053,28 @@
// 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
+ return _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
+ return _mm512_stream_ps(__P, __A);
+}
+
Index: lib/Headers/avx512fintrin.h
===================================================================
--- lib/Headers/avx512fintrin.h
+++ lib/Headers/avx512fintrin.h
@@ -7324,6 +7324,30 @@
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
Index: include/clang/Basic/BuiltinsX86.def
===================================================================
--- include/clang/Basic/BuiltinsX86.def
+++ include/clang/Basic/BuiltinsX86.def
@@ -2185,6 +2185,10 @@
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19529.54984.patch
Type: text/x-patch
Size: 2680 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160426/84c9d2c0/attachment.bin>
More information about the llvm-commits
mailing list