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