Zuckerman, Michael via llvm-dev
2016-May-01 13:04 UTC
[llvm-dev] r267690 - [Clang][BuiltIn][AVX512]Adding intrinsics for vmovntdqa vmovntpd vmovntps instruction set
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] Sent: Thursday, April 28, 2016 04:53 To: Zuckerman, Michael <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. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160501/ae6e5693/attachment.html>
Eric Christopher via llvm-dev
2016-May-01 16:53 UTC
[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> 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] > *Sent:* Thursday, April 28, 2016 04:53 > *To:* Zuckerman, Michael <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> 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 > 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 > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160501/444d54af/attachment.html>
Zuckerman, Michael via llvm-dev
2016-May-15 12:55 UTC
[llvm-dev] r267690 - [Clang][BuiltIn][AVX512]Adding intrinsics for vmovntdqa vmovntpd vmovntps instruction set
Hi , In the future, we will address this issue. Regards Michael Zuckerman From: Eric Christopher [mailto:echristo at gmail.com] Sent: Sunday, May 01, 2016 19:54 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 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160515/43c60fe3/attachment.html>