r214099 - [AVX512] Add non-masking FP store intrinsics

Adam Nemet anemet at apple.com
Mon Jul 28 10:14:45 PDT 2014


Author: anemet
Date: Mon Jul 28 12:14:45 2014
New Revision: 214099

URL: http://llvm.org/viewvc/llvm-project?rev=214099&view=rev
Log:
[AVX512] Add non-masking FP store intrinsics

Part of <rdar://problem/17688758>

Modified:
    cfe/trunk/lib/Headers/avx512fintrin.h
    cfe/trunk/test/CodeGen/avx512f-builtins.c

Modified: cfe/trunk/lib/Headers/avx512fintrin.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/avx512fintrin.h?rev=214099&r1=214098&r2=214099&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/avx512fintrin.h (original)
+++ cfe/trunk/lib/Headers/avx512fintrin.h Mon Jul 28 12:14:45 2014
@@ -761,10 +761,34 @@ _mm512_mask_storeu_pd(void *__P, __mmask
 }
 
 static __inline void __attribute__ ((__always_inline__, __nodebug__))
+_mm512_storeu_pd(void *__P, __m512d __A)
+{
+  __builtin_ia32_storeupd512_mask((__v8df *)__P, (__v8df)__A, (__mmask8)-1);
+}
+
+static __inline void __attribute__ ((__always_inline__, __nodebug__))
 _mm512_mask_storeu_ps(void *__P, __mmask16 __U, __m512 __A)
 {
   __builtin_ia32_storeups512_mask ((__v16sf *)__P, (__v16sf) __A,
                                    (__mmask16) __U);
 }
 
+static __inline void __attribute__ ((__always_inline__, __nodebug__))
+_mm512_storeu_ps(void *__P, __m512 __A)
+{
+  __builtin_ia32_storeups512_mask((__v16sf *)__P, (__v16sf)__A, (__mmask16)-1);
+}
+
+static __inline void __attribute__ ((__always_inline__, __nodebug__))
+_mm512_store_ps(void *__P, __m512 __A)
+{
+  *(__m512*)__P = __A;
+}
+
+static __inline void __attribute__ ((__always_inline__, __nodebug__))
+_mm512_store_pd(void *__P, __m512d __A)
+{
+  *(__m512d*)__P = __A;
+}
+
 #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=214099&r1=214098&r2=214099&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/avx512f-builtins.c (original)
+++ cfe/trunk/test/CodeGen/avx512f-builtins.c Mon Jul 28 12:14:45 2014
@@ -60,3 +60,31 @@ __m512d test_mm512_mul_pd(__m512d a, __m
   // CHECK: fmul <8 x double>
   return _mm512_mul_pd(a, b);
 }
+
+void test_mm512_storeu_ps(void *p, __m512 a)
+{
+  // CHECK-LABEL: @test_mm512_storeu_ps
+  // CHECK: @llvm.x86.avx512.mask.storeu.ps.512
+  _mm512_storeu_ps(p, a);
+}
+
+void test_mm512_storeu_pd(void *p, __m512d a)
+{
+  // CHECK-LABEL: @test_mm512_storeu_pd
+  // CHECK: @llvm.x86.avx512.mask.storeu.pd.512
+  _mm512_storeu_pd(p, a);
+}
+
+void test_mm512_store_ps(void *p, __m512 a)
+{
+  // CHECK-LABEL: @test_mm512_store_ps
+  // CHECK: store <16 x float>
+  _mm512_store_ps(p, a);
+}
+
+void test_mm512_store_pd(void *p, __m512d a)
+{
+  // CHECK-LABEL: @test_mm512_store_pd
+  // CHECK: store <8 x double>
+  _mm512_store_pd(p, a);
+}





More information about the cfe-commits mailing list