summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/avx512f-builtins.c
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CodeGen/avx512f-builtins.c')
-rw-r--r--clang/test/CodeGen/avx512f-builtins.c74
1 files changed, 40 insertions, 34 deletions
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) {
OpenPOWER on IntegriCloud