]> granicus.if.org Git - clang/commitdiff
Adding missing _mm512_castsi512_si256 intrinsic.
authorMichael Zuckerman <Michael.zuckerman@intel.com>
Thu, 26 May 2016 14:32:11 +0000 (14:32 +0000)
committerMichael Zuckerman <Michael.zuckerman@intel.com>
Thu, 26 May 2016 14:32:11 +0000 (14:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270851 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Headers/avx512fintrin.h
test/CodeGen/avx512f-builtins.c

index a9d2af378df58333baaa164c300fac97023a12cf..dd5e0e159979e98276ce6f9b31aefdf13f00029e 100644 (file)
@@ -445,6 +445,12 @@ _mm512_castsi512_si128 (__m512i __A)
   return (__m128i)__builtin_shufflevector(__A, __A , 0, 1);
 }
 
+static __inline __m256i __DEFAULT_FN_ATTRS
+_mm512_castsi512_si256 (__m512i __A)
+{
+  return (__m256i)__builtin_shufflevector(__A, __A , 0, 1, 2, 3);
+}
+
 /* Bitwise operators */
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_and_epi32(__m512i __a, __m512i __b)
index 553dc147da1f0981953b61ac7094a3900fa1a240..8e5813fb3483ad0ff75fc3ada94f89aae4bc4766 100644 (file)
@@ -6041,6 +6041,13 @@ __m128i test_mm512_castsi512_si128 (__m512i __A)
   return _mm512_castsi512_si128 (__A);
 }
 
+__m256i test_mm512_castsi512_si256 (__m512i __A)
+{
+  // CHECK-LABEL: @test_mm512_castsi512_si256 
+  // CHECK: shufflevector <8 x i64> %{{.}}, <8 x i64> %{{.}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
+  return _mm512_castsi512_si256 (__A);
+}
+
 __m128 test_mm_cvt_roundsd_ss(__m128 __A, __m128d __B) {
   // CHECK-LABEL: @test_mm_cvt_roundsd_ss
   // CHECK: @llvm.x86.avx512.mask.cvtsd2ss.round