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/avx512vl-builtins.c | |
| 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/avx512vl-builtins.c')
| -rw-r--r-- | clang/test/CodeGen/avx512vl-builtins.c | 70 | 
1 files changed, 42 insertions, 28 deletions
| 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) { | 

