[llvm-dev] r267690 - [Clang][BuiltIn][AVX512]Adding intrinsics for vmovntdqa vmovntpd vmovntps instruction set
Eric Christopher via llvm-dev
llvm-dev at lists.llvm.org
Sun May 1 09:53:58 PDT 2016
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>
More information about the llvm-dev
mailing list