[llvm-dev] r267690 - [Clang][BuiltIn][AVX512]Adding intrinsics for vmovntdqa vmovntpd vmovntps instruction set
Zuckerman, Michael via llvm-dev
llvm-dev at lists.llvm.org
Wed May 18 13:29:02 PDT 2016
Hi,
You can find open review on this subject at:
D20358 [Clang][AVX512][Intrinsics]Convert AVX non-temporal store <http://reviews.llvm.org/D20358>
And
D20359 [LLVM][AVX512][Intrinsics] Convert AVX non-temporal store <http://reviews.llvm.org/D20359>
Michael
From: Eric Christopher [mailto:echristo at gmail.com]
Sent: Monday, May 16, 2016 19:53
To: Zuckerman, Michael <michael.zuckerman at intel.com>; Craig Topper <craig.topper at gmail.com>
Cc: llvm-dev at lists.llvm.org
Subject: Re: [llvm-dev] r267690 - [Clang][BuiltIn][AVX512]Adding intrinsics for vmovntdqa vmovntpd vmovntps instruction set
When? Why can't we do this now?
-eric
On Sun, May 15, 2016 at 5:55 AM Zuckerman, Michael <michael.zuckerman at intel.com<mailto:michael.zuckerman at intel.com>> wrote:
Hi ,
In the future, we will address this issue.
Regards
Michael Zuckerman
From: Eric Christopher [mailto:echristo at gmail.com<mailto:echristo at gmail.com>]
Sent: Sunday, May 01, 2016 19:54
To: Zuckerman, Michael <michael.zuckerman at intel.com<mailto:michael.zuckerman at intel.com>>; Craig Topper <craig.topper at gmail.com<mailto:craig.topper at gmail.com>>
Cc: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] r267690 - [Clang][BuiltIn][AVX512]Adding intrinsics for vmovntdqa vmovntpd vmovntps instruction set
Why?
On Sun, May 1, 2016, 6:04 AM Zuckerman, Michael via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
Hi,
For now no.
But I will add this three builtins to CGBuiltin.cpp.
If you want, you can be a reviewer of this change.
Regards
Michael Zuckerman
From: Craig Topper [mailto:craig.topper at gmail.com<mailto:craig.topper at gmail.com>]
Sent: Thursday, April 28, 2016 04:53
To: Zuckerman, Michael <michael.zuckerman at intel.com<mailto:michael.zuckerman at intel.com>>
Subject: Re: r267690 - [Clang][BuiltIn][AVX512]Adding intrinsics for vmovntdqa vmovntpd vmovntps instruction set
Can we use native IR for the stores the way the 128-bit and 256-bit equivalents do?
On Wed, Apr 27, 2016 at 3:44 AM, Michael Zuckerman via cfe-commits <cfe-commits at lists.llvm.org<mailto:cfe-commits at lists.llvm.org>> wrote:
Author: mzuckerm
Date: Wed Apr 27 05:44:15 2016
New Revision: 267690
URL: http://llvm.org/viewvc/llvm-project?rev=267690&view=rev
Log:
[Clang][BuiltIn][AVX512]Adding intrinsics for vmovntdqa vmovntpd vmovntps instruction set
Differential Revision: http://reviews.llvm.org/D19529
Modified:
cfe/trunk/include/clang/Basic/BuiltinsX86.def
cfe/trunk/lib/Headers/avx512fintrin.h
cfe/trunk/test/CodeGen/avx512f-builtins.c
Modified: cfe/trunk/include/clang/Basic/BuiltinsX86.def
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsX86.def?rev=267690&r1=267689&r2=267690&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/BuiltinsX86.def (original)
+++ cfe/trunk/include/clang/Basic/BuiltinsX86.def Wed Apr 27 05:44:15 2016
@@ -2185,6 +2185,10 @@ TARGET_BUILTIN(__builtin_ia32_kortestzhi
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
Modified: cfe/trunk/lib/Headers/avx512fintrin.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/avx512fintrin.h?rev=267690&r1=267689&r2=267690&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/avx512fintrin.h (original)
+++ cfe/trunk/lib/Headers/avx512fintrin.h Wed Apr 27 05:44:15 2016
@@ -7324,6 +7324,30 @@ _mm512_kxor (__mmask16 __A, __mmask16 __
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
Modified: cfe/trunk/test/CodeGen/avx512f-builtins.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512f-builtins.c?rev=267690&r1=267689&r2=267690&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/avx512f-builtins.c (original)
+++ cfe/trunk/test/CodeGen/avx512f-builtins.c Wed Apr 27 05:44:15 2016
@@ -5053,3 +5053,28 @@ __mmask16 test_mm512_kxor(__mmask16 __A,
// 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);
+}
+
_______________________________________________
cfe-commits mailing list
cfe-commits at lists.llvm.org<mailto:cfe-commits at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
--
~Craig
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160518/c1fcd46d/attachment.html>
More information about the llvm-dev
mailing list