From: Michael Zuckerman Date: Thu, 26 May 2016 14:32:11 +0000 (+0000) Subject: Adding missing _mm512_castsi512_si256 intrinsic. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bd258e2fa8169719ea89b2ca678be65032b01711;p=clang Adding missing _mm512_castsi512_si256 intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270851 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Headers/avx512fintrin.h b/lib/Headers/avx512fintrin.h index a9d2af378d..dd5e0e1599 100644 --- a/lib/Headers/avx512fintrin.h +++ b/lib/Headers/avx512fintrin.h @@ -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) diff --git a/test/CodeGen/avx512f-builtins.c b/test/CodeGen/avx512f-builtins.c index 553dc147da..8e5813fb34 100644 --- a/test/CodeGen/avx512f-builtins.c +++ b/test/CodeGen/avx512f-builtins.c @@ -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> + 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