diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-07-05 12:59:33 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-07-05 12:59:33 +0000 |
| commit | f5a8837e1bcd31a06f21c2c3f0544281e5ad1eb5 (patch) | |
| tree | 5048a476476f031bf85303fa76c2bb108ff9488c /clang/test/CodeGen | |
| parent | ae5ff990ae558a9ac399cd84e8ad4b0ee7cde2a4 (diff) | |
| download | bcm5719-llvm-f5a8837e1bcd31a06f21c2c3f0544281e5ad1eb5.tar.gz bcm5719-llvm-f5a8837e1bcd31a06f21c2c3f0544281e5ad1eb5.zip | |
[X86][AVX512] Converted the VBROADCAST intrinsics to generic IR
llvm-svn: 274544
Diffstat (limited to 'clang/test/CodeGen')
| -rw-r--r-- | clang/test/CodeGen/avx512bw-builtins.c | 29 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512f-builtins.c | 74 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512vl-builtins.c | 70 | ||||
| -rw-r--r-- | clang/test/CodeGen/avx512vlbw-builtins.c | 42 |
4 files changed, 122 insertions, 93 deletions
diff --git a/clang/test/CodeGen/avx512bw-builtins.c b/clang/test/CodeGen/avx512bw-builtins.c index 75efcbaa754..1cd0a0ccb14 100644 --- a/clang/test/CodeGen/avx512bw-builtins.c +++ b/clang/test/CodeGen/avx512bw-builtins.c @@ -1473,41 +1473,44 @@ __m512i test_mm512_movm_epi16(__mmask32 __A) { return _mm512_movm_epi16(__A); } - __m512i test_mm512_broadcastb_epi8(__m128i __A) { // CHECK-LABEL: @test_mm512_broadcastb_epi8 - // CHECK: @llvm.x86.avx512.pbroadcastb.512 - return _mm512_broadcastb_epi8(__A); + // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> undef, <64 x i32> zeroinitializer + return _mm512_broadcastb_epi8(__A); } __m512i test_mm512_mask_broadcastb_epi8(__m512i __O, __mmask64 __M, __m128i __A) { // CHECK-LABEL: @test_mm512_mask_broadcastb_epi8 - // CHECK: @llvm.x86.avx512.pbroadcastb.512 - return _mm512_mask_broadcastb_epi8(__O, __M, __A); + // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> undef, <64 x i32> zeroinitializer + // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}} + return _mm512_mask_broadcastb_epi8(__O, __M, __A); } __m512i test_mm512_maskz_broadcastb_epi8(__mmask64 __M, __m128i __A) { // CHECK-LABEL: @test_mm512_maskz_broadcastb_epi8 - // CHECK: @llvm.x86.avx512.pbroadcastb.512 - return _mm512_maskz_broadcastb_epi8(__M, __A); + // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> undef, <64 x i32> zeroinitializer + // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}} + return _mm512_maskz_broadcastb_epi8(__M, __A); } __m512i test_mm512_broadcastw_epi16(__m128i __A) { // CHECK-LABEL: @test_mm512_broadcastw_epi16 - // CHECK: @llvm.x86.avx512.pbroadcastw.512 - return _mm512_broadcastw_epi16(__A); + // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <32 x i32> zeroinitializer + return _mm512_broadcastw_epi16(__A); } __m512i test_mm512_mask_broadcastw_epi16(__m512i __O, __mmask32 __M, __m128i __A) { // CHECK-LABEL: @test_mm512_mask_broadcastw_epi16 - // CHECK: @llvm.x86.avx512.pbroadcastw.512 - return _mm512_mask_broadcastw_epi16(__O, __M, __A); + // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <32 x i32> zeroinitializer + // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} + return _mm512_mask_broadcastw_epi16(__O, __M, __A); } __m512i test_mm512_maskz_broadcastw_epi16(__mmask32 __M, __m128i __A) { // CHECK-LABEL: @test_mm512_maskz_broadcastw_epi16 - // CHECK: @llvm.x86.avx512.pbroadcastw.512 - return _mm512_maskz_broadcastw_epi16(__M, __A); + // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> undef, <32 x i32> zeroinitializer + // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}} + return _mm512_maskz_broadcastw_epi16(__M, __A); } __m512i test_mm512_mask_set1_epi16(__m512i __O, __mmask32 __M, short __A) { diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c index 018ad93f8df..b8121b2f75a 100644 --- a/clang/test/CodeGen/avx512f-builtins.c +++ b/clang/test/CodeGen/avx512f-builtins.c @@ -434,20 +434,6 @@ __m512i test_mm512_maskz_alignr_epi64( __mmask8 u, __m512i a, __m512i b) return _mm512_maskz_alignr_epi64(u, a, b, 2); } -__m512d test_mm512_broadcastsd_pd(__m128d a) -{ - // CHECK-LABEL: @test_mm512_broadcastsd_pd - // CHECK: insertelement <8 x double> {{.*}}, i32 0 - // CHECK: insertelement <8 x double> {{.*}}, i32 1 - // CHECK: insertelement <8 x double> {{.*}}, i32 2 - // CHECK: insertelement <8 x double> {{.*}}, i32 3 - // CHECK: insertelement <8 x double> {{.*}}, i32 4 - // CHECK: insertelement <8 x double> {{.*}}, i32 5 - // CHECK: insertelement <8 x double> {{.*}}, i32 6 - // CHECK: insertelement <8 x double> {{.*}}, i32 7 - return _mm512_broadcastsd_pd(a); -} - __m512d test_mm512_fmadd_round_pd(__m512d __A, __m512d __B, __m512d __C) { // CHECK-LABEL: @test_mm512_fmadd_round_pd // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.512 @@ -4388,64 +4374,84 @@ __m512i test_mm512_maskz_broadcast_i64x4(__mmask8 __M, __m256i __A) { return _mm512_maskz_broadcast_i64x4(__M, __A); } +__m512d test_mm512_broadcastsd_pd(__m128d __A) { + // CHECK-LABEL: @test_mm512_broadcastsd_pd + // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer + return _mm512_broadcastsd_pd(__A); +} + __m512d test_mm512_mask_broadcastsd_pd(__m512d __O, __mmask8 __M, __m128d __A) { // CHECK-LABEL: @test_mm512_mask_broadcastsd_pd - // CHECK: @llvm.x86.avx512.mask.broadcast.sd.pd.512 - return _mm512_mask_broadcastsd_pd(__O, __M, __A); + // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer + // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}} + return _mm512_mask_broadcastsd_pd(__O, __M, __A); } __m512d test_mm512_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) { // CHECK-LABEL: @test_mm512_maskz_broadcastsd_pd - // CHECK: @llvm.x86.avx512.mask.broadcast.sd.pd.512 - return _mm512_maskz_broadcastsd_pd(__M, __A); + // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <8 x i32> zeroinitializer + // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}} + return _mm512_maskz_broadcastsd_pd(__M, __A); +} + +__m512 test_mm512_broadcastss_ps(__m128 __A) { + // CHECK-LABEL: @test_mm512_broadcastss_ps + // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer + return _mm512_broadcastss_ps(__A); } __m512 test_mm512_mask_broadcastss_ps(__m512 __O, __mmask16 __M, __m128 __A) { // CHECK-LABEL: @test_mm512_mask_broadcastss_ps - // CHECK: @llvm.x86.avx512.mask.broadcast.ss.ps.512 - return _mm512_mask_broadcastss_ps(__O, __M, __A); + // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer + // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}} + return _mm512_mask_broadcastss_ps(__O, __M, __A); } __m512 test_mm512_maskz_broadcastss_ps(__mmask16 __M, __m128 __A) { // CHECK-LABEL: @test_mm512_maskz_broadcastss_ps - // CHECK: @llvm.x86.avx512.mask.broadcast.ss.ps.512 - return _mm512_maskz_broadcastss_ps(__M, __A); + // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <16 x i32> zeroinitializer + // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}} + return _mm512_maskz_broadcastss_ps(__M, __A); } __m512i test_mm512_broadcastd_epi32(__m128i __A) { // CHECK-LABEL: @test_mm512_broadcastd_epi32 - // CHECK: @llvm.x86.avx512.pbroadcastd.512 - return _mm512_broadcastd_epi32(__A); + // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer + return _mm512_broadcastd_epi32(__A); } __m512i test_mm512_mask_broadcastd_epi32(__m512i __O, __mmask16 __M, __m128i __A) { // CHECK-LABEL: @test_mm512_mask_broadcastd_epi32 - // CHECK: @llvm.x86.avx512.pbroadcastd.512 - return _mm512_mask_broadcastd_epi32(__O, __M, __A); + // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer + // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}} + return _mm512_mask_broadcastd_epi32(__O, __M, __A); } __m512i test_mm512_maskz_broadcastd_epi32(__mmask16 __M, __m128i __A) { // CHECK-LABEL: @test_mm512_maskz_broadcastd_epi32 - // CHECK: @llvm.x86.avx512.pbroadcastd.512 - return _mm512_maskz_broadcastd_epi32(__M, __A); + // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> undef, <16 x i32> zeroinitializer + // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}} + return _mm512_maskz_broadcastd_epi32(__M, __A); } __m512i test_mm512_broadcastq_epi64(__m128i __A) { // CHECK-LABEL: @test_mm512_broadcastq_epi64 - // CHECK: @llvm.x86.avx512.pbroadcastq.512 - return _mm512_broadcastq_epi64(__A); + // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer + return _mm512_broadcastq_epi64(__A); } __m512i test_mm512_mask_broadcastq_epi64(__m512i __O, __mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm512_mask_broadcastq_epi64 - // CHECK: @llvm.x86.avx512.pbroadcastq.512 - return _mm512_mask_broadcastq_epi64(__O, __M, __A); + // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer + // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} + return _mm512_mask_broadcastq_epi64(__O, __M, __A); } __m512i test_mm512_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm512_maskz_broadcastq_epi64 - // CHECK: @llvm.x86.avx512.pbroadcastq.512 - return _mm512_maskz_broadcastq_epi64(__M, __A); + // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> undef, <8 x i32> zeroinitializer + // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}} + return _mm512_maskz_broadcastq_epi64(__M, __A); } __m128i test_mm512_cvtsepi32_epi8(__m512i __A) { diff --git a/clang/test/CodeGen/avx512vl-builtins.c b/clang/test/CodeGen/avx512vl-builtins.c index f27849a15c0..c4f70fbddcd 100644 --- a/clang/test/CodeGen/avx512vl-builtins.c +++ b/clang/test/CodeGen/avx512vl-builtins.c @@ -5353,86 +5353,100 @@ __m256i test_mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i __A) { __m256d test_mm256_mask_broadcastsd_pd(__m256d __O, __mmask8 __M, __m128d __A) { // CHECK-LABEL: @test_mm256_mask_broadcastsd_pd - // CHECK: @llvm.x86.avx512.mask.broadcast.sd.pd.256 - return _mm256_mask_broadcastsd_pd(__O, __M, __A); + // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer + // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} + return _mm256_mask_broadcastsd_pd(__O, __M, __A); } __m256d test_mm256_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) { // CHECK-LABEL: @test_mm256_maskz_broadcastsd_pd - // CHECK: @llvm.x86.avx512.mask.broadcast.sd.pd.256 - return _mm256_maskz_broadcastsd_pd(__M, __A); + // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer + // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} + return _mm256_maskz_broadcastsd_pd(__M, __A); } __m128 test_mm_mask_broadcastss_ps(__m128 __O, __mmask8 __M, __m128 __A) { // CHECK-LABEL: @test_mm_mask_broadcastss_ps - // CHECK: @llvm.x86.avx512.mask.broadcast.ss.ps.128 - return _mm_mask_broadcastss_ps(__O, __M, __A); + // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer + // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} + return _mm_mask_broadcastss_ps(__O, __M, __A); } __m128 test_mm_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) { // CHECK-LABEL: @test_mm_maskz_broadcastss_ps - // CHECK: @llvm.x86.avx512.mask.broadcast.ss.ps.128 - return _mm_maskz_broadcastss_ps(__M, __A); + // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer + // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} + return _mm_maskz_broadcastss_ps(__M, __A); } __m256 test_mm256_mask_broadcastss_ps(__m256 __O, __mmask8 __M, __m128 __A) { // CHECK-LABEL: @test_mm256_mask_broadcastss_ps - // CHECK: @llvm.x86.avx512.mask.broadcast.ss.ps.256 - return _mm256_mask_broadcastss_ps(__O, __M, __A); + // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer + // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} + return _mm256_mask_broadcastss_ps(__O, __M, __A); } __m256 test_mm256_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) { // CHECK-LABEL: @test_mm256_maskz_broadcastss_ps - // CHECK: @llvm.x86.avx512.mask.broadcast.ss.ps.256 - return _mm256_maskz_broadcastss_ps(__M, __A); + // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer + // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} + return _mm256_maskz_broadcastss_ps(__M, __A); } __m128i test_mm_mask_broadcastd_epi32(__m128i __O, __mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm_mask_broadcastd_epi32 - // CHECK: @llvm.x86.avx512.pbroadcastd.128 - return _mm_mask_broadcastd_epi32(__O, __M, __A); + // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} + return _mm_mask_broadcastd_epi32(__O, __M, __A); } __m128i test_mm_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_broadcastd_epi32 - // CHECK: @llvm.x86.avx512.pbroadcastd.128 - return _mm_maskz_broadcastd_epi32(__M, __A); + // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} + return _mm_maskz_broadcastd_epi32(__M, __A); } __m256i test_mm256_mask_broadcastd_epi32(__m256i __O, __mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_broadcastd_epi32 - // CHECK: @llvm.x86.avx512.pbroadcastd.256 - return _mm256_mask_broadcastd_epi32(__O, __M, __A); + // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer + // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} + return _mm256_mask_broadcastd_epi32(__O, __M, __A); } __m256i test_mm256_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_broadcastd_epi32 - // CHECK: @llvm.x86.avx512.pbroadcastd.256 - return _mm256_maskz_broadcastd_epi32(__M, __A); + // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer + // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} + return _mm256_maskz_broadcastd_epi32(__M, __A); } __m128i test_mm_mask_broadcastq_epi64(__m128i __O, __mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm_mask_broadcastq_epi64 - // CHECK: @llvm.x86.avx512.pbroadcastq.128 - return _mm_mask_broadcastq_epi64(__O, __M, __A); + // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} + return _mm_mask_broadcastq_epi64(__O, __M, __A); } __m128i test_mm_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_broadcastq_epi64 - // CHECK: @llvm.x86.avx512.pbroadcastq.128 - return _mm_maskz_broadcastq_epi64(__M, __A); + // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer + // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} + return _mm_maskz_broadcastq_epi64(__M, __A); } __m256i test_mm256_mask_broadcastq_epi64(__m256i __O, __mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_broadcastq_epi64 - // CHECK: @llvm.x86.avx512.pbroadcastq.256 - return _mm256_mask_broadcastq_epi64(__O, __M, __A); + // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} + return _mm256_mask_broadcastq_epi64(__O, __M, __A); } __m256i test_mm256_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_broadcastq_epi64 - // CHECK: @llvm.x86.avx512.pbroadcastq.256 - return _mm256_maskz_broadcastq_epi64(__M, __A); + // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer + // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} + return _mm256_maskz_broadcastq_epi64(__M, __A); } __m128i test_mm_cvtsepi32_epi8(__m128i __A) { diff --git a/clang/test/CodeGen/avx512vlbw-builtins.c b/clang/test/CodeGen/avx512vlbw-builtins.c index 6779b7275d3..6bfa09f5d1c 100644 --- a/clang/test/CodeGen/avx512vlbw-builtins.c +++ b/clang/test/CodeGen/avx512vlbw-builtins.c @@ -2280,54 +2280,60 @@ __m256i test_mm256_movm_epi16(__mmask16 __A) { return _mm256_movm_epi16(__A); } - - __m128i test_mm_mask_broadcastb_epi8(__m128i __O, __mmask16 __M, __m128i __A) { // CHECK-LABEL: @test_mm_mask_broadcastb_epi8 - // CHECK: @llvm.x86.avx512.pbroadcastb.128 - return _mm_mask_broadcastb_epi8(__O, __M, __A); + // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> zeroinitializer + // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}} + return _mm_mask_broadcastb_epi8(__O, __M, __A); } __m128i test_mm_maskz_broadcastb_epi8(__mmask16 __M, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_broadcastb_epi8 - // CHECK: @llvm.x86.avx512.pbroadcastb.128 - return _mm_maskz_broadcastb_epi8(__M, __A); + // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i32> zeroinitializer + // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}} + return _mm_maskz_broadcastb_epi8(__M, __A); } __m256i test_mm256_mask_broadcastb_epi8(__m256i __O, __mmask32 __M, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_broadcastb_epi8 - // CHECK: @llvm.x86.avx512.pbroadcastb.256 - return _mm256_mask_broadcastb_epi8(__O, __M, __A); + // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <32 x i32> zeroinitializer + // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}} + return _mm256_mask_broadcastb_epi8(__O, __M, __A); } __m256i test_mm256_maskz_broadcastb_epi8(__mmask32 __M, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_broadcastb_epi8 - // CHECK: @llvm.x86.avx512.pbroadcastb.256 - return _mm256_maskz_broadcastb_epi8(__M, __A); + // CHECK: shufflevector <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <32 x i32> zeroinitializer + // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}} + return _mm256_maskz_broadcastb_epi8(__M, __A); } __m128i test_mm_mask_broadcastw_epi16(__m128i __O, __mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm_mask_broadcastw_epi16 - // CHECK: @llvm.x86.avx512.pbroadcastw.128 - return _mm_mask_broadcastw_epi16(__O, __M, __A); + // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> zeroinitializer + // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} + return _mm_mask_broadcastw_epi16(__O, __M, __A); } __m128i test_mm_maskz_broadcastw_epi16(__mmask8 __M, __m128i __A) { // CHECK-LABEL: @test_mm_maskz_broadcastw_epi16 - // CHECK: @llvm.x86.avx512.pbroadcastw.128 - return _mm_maskz_broadcastw_epi16(__M, __A); + // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <8 x i32> zeroinitializer + // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}} + return _mm_maskz_broadcastw_epi16(__M, __A); } __m256i test_mm256_mask_broadcastw_epi16(__m256i __O, __mmask16 __M, __m128i __A) { // CHECK-LABEL: @test_mm256_mask_broadcastw_epi16 - // CHECK: @llvm.x86.avx512.pbroadcastw.256 - return _mm256_mask_broadcastw_epi16(__O, __M, __A); + // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <16 x i32> zeroinitializer + // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} + return _mm256_mask_broadcastw_epi16(__O, __M, __A); } __m256i test_mm256_maskz_broadcastw_epi16(__mmask16 __M, __m128i __A) { // CHECK-LABEL: @test_mm256_maskz_broadcastw_epi16 - // CHECK: @llvm.x86.avx512.pbroadcastw.256 - return _mm256_maskz_broadcastw_epi16(__M, __A); + // CHECK: shufflevector <8 x i16> %{{.*}}, <8 x i16> %{{.*}}, <16 x i32> zeroinitializer + // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}} + return _mm256_maskz_broadcastw_epi16(__M, __A); } __m256i test_mm256_mask_set1_epi16(__m256i __O, __mmask16 __M, short __A) { |

