@@ -3302,6 +3302,8 @@ __m128 test_mm_mask_add_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
33023302 // CHECK-NEXT: insertelement <4 x float> %{{.*}}, float %{{.*}}, i64 0
33033303 return _mm_mask_add_ss(__W,__U,__A,__B);
33043304}
3305+ TEST_CONSTEXPR(match_v4sf(_mm_mask_add_ss((__m128)(__v4sf){10.0f, 100.0f, 200.0f, 300.0f}, 0x1,(__m128)(__v4sf){1.25f, 3.0f, 4.0f, 5.0f},(__m128)(__v4sf){2.75f, 6.0f, 7.0f, 8.0f}),4.0f, 100.0f, 200.0f, 300.0f));
3306+
33053307__m128 test_mm_maskz_add_ss(__mmask8 __U, __m128 __A, __m128 __B) {
33063308 // CHECK-LABEL: test_mm_maskz_add_ss
33073309 // CHECK-NOT: @llvm.x86.avx512.mask.add.ss.round
@@ -3317,6 +3319,8 @@ __m128 test_mm_maskz_add_ss(__mmask8 __U, __m128 __A, __m128 __B) {
33173319 // CHECK-NEXT: insertelement <4 x float> %{{.*}}, float %{{.*}}, i64 0
33183320 return _mm_maskz_add_ss(__U,__A,__B);
33193321}
3322+ TEST_CONSTEXPR(match_v4sf(_mm_maskz_add_ss(0x1, (__m128)(__v4sf){1.25f, 3.0f, 4.0f, 5.0f}, (__m128)(__v4sf){2.75f, 6.0f, 7.0f, 8.0f}), 4.0f, 0.0f, 0.0f, 0.0f));
3323+
33203324__m128d test_mm_add_round_sd(__m128d __A, __m128d __B) {
33213325 // CHECK-LABEL: test_mm_add_round_sd
33223326 // CHECK: @llvm.x86.avx512.mask.add.sd.round
@@ -3347,6 +3351,8 @@ __m128d test_mm_mask_add_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
33473351 // CHECK-NEXT: insertelement <2 x double> %{{.*}}, double %{{.*}}, i64 0
33483352 return _mm_mask_add_sd(__W,__U,__A,__B);
33493353}
3354+ TEST_CONSTEXPR(match_v2df(_mm_mask_add_sd((__m128d)(__v2df){10.0, 999.0}, 0x1, (__m128d)(__v2df){5.5, 77.0}, (__m128d)(__v2df){0.25, 88.0}), 5.75, 999.0));
3355+
33503356__m128d test_mm_maskz_add_sd(__mmask8 __U, __m128d __A, __m128d __B) {
33513357 // CHECK-LABEL: test_mm_maskz_add_sd
33523358 // CHECK-NOT: @llvm.x86.avx512.mask.add.sd.round
@@ -3362,6 +3368,8 @@ __m128d test_mm_maskz_add_sd(__mmask8 __U, __m128d __A, __m128d __B) {
33623368 // CHECK-NEXT: insertelement <2 x double> %{{.*}}, double %{{.*}}, i64 0
33633369 return _mm_maskz_add_sd(__U,__A,__B);
33643370}
3371+ TEST_CONSTEXPR(match_v2df(_mm_maskz_add_sd(0x1, (__m128d)(__v2df){5.5, 77.0}, (__m128d)(__v2df){0.25, 88.0}), 5.75, 0.0));
3372+
33653373__m512d test_mm512_sub_round_pd(__m512d __A, __m512d __B) {
33663374 // CHECK-LABEL: test_mm512_sub_round_pd
33673375 // CHECK: @llvm.x86.avx512.sub.pd.512
@@ -3450,6 +3458,8 @@ __m128 test_mm_mask_sub_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
34503458 // CHECK-NEXT: insertelement <4 x float> %{{.*}}, float %{{.*}}, i64 0
34513459 return _mm_mask_sub_ss(__W,__U,__A,__B);
34523460}
3461+ TEST_CONSTEXPR(match_v4sf(_mm_mask_sub_ss((__m128)(__v4sf){-1.0f, 10.0f, 20.0f, 30.0f}, 0x1, (__m128)(__v4sf){7.0f, 3.0f, 4.0f, 5.0f}, (__m128)(__v4sf){2.5f, 6.0f, 7.0f, 8.0f}), 4.5f, 10.0f, 20.0f, 30.0f));
3462+
34533463__m128 test_mm_maskz_sub_ss(__mmask8 __U, __m128 __A, __m128 __B) {
34543464 // CHECK-LABEL: test_mm_maskz_sub_ss
34553465 // CHECK-NOT: @llvm.x86.avx512.mask.sub.ss.round
@@ -3465,6 +3475,8 @@ __m128 test_mm_maskz_sub_ss(__mmask8 __U, __m128 __A, __m128 __B) {
34653475 // CHECK-NEXT: insertelement <4 x float> %{{.*}}, float %{{.*}}, i64 0
34663476 return _mm_maskz_sub_ss(__U,__A,__B);
34673477}
3478+ TEST_CONSTEXPR(match_v4sf(_mm_maskz_sub_ss(0x1, (__m128)(__v4sf){7.0f, 3.0f, 4.0f, 5.0f}, (__m128)(__v4sf){2.5f, 6.0f, 7.0f, 8.0f}), 4.5f, 0.0f, 0.0f, 0.0f));
3479+
34683480__m128d test_mm_sub_round_sd(__m128d __A, __m128d __B) {
34693481 // CHECK-LABEL: test_mm_sub_round_sd
34703482 // CHECK: @llvm.x86.avx512.mask.sub.sd.round
@@ -3495,6 +3507,8 @@ __m128d test_mm_mask_sub_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
34953507 // CHECK-NEXT: insertelement <2 x double> %{{.*}}, double %{{.*}}, i64 0
34963508 return _mm_mask_sub_sd(__W,__U,__A,__B);
34973509}
3510+ TEST_CONSTEXPR(match_v2df(_mm_mask_sub_sd((__m128d)(__v2df){-1.0, 111.0}, 0x1, (__m128d)(__v2df){9.0, 70.0}, (__m128d)(__v2df){3.5, 80.0}), 5.5, 111.0));
3511+
34983512__m128d test_mm_maskz_sub_sd(__mmask8 __U, __m128d __A, __m128d __B) {
34993513 // CHECK-LABEL: test_mm_maskz_sub_sd
35003514 // CHECK-NOT: @llvm.x86.avx512.mask.sub.sd.round
@@ -3510,6 +3524,8 @@ __m128d test_mm_maskz_sub_sd(__mmask8 __U, __m128d __A, __m128d __B) {
35103524 // CHECK-NEXT: insertelement <2 x double> %{{.*}}, double %{{.*}}, i64 0
35113525 return _mm_maskz_sub_sd(__U,__A,__B);
35123526}
3527+ TEST_CONSTEXPR(match_v2df(_mm_maskz_sub_sd(0x1, (__m128d)(__v2df){9.0, 70.0}, (__m128d)(__v2df){3.5, 80.0}), 5.5, 0.0));
3528+
35133529__m512d test_mm512_mul_round_pd(__m512d __A, __m512d __B) {
35143530 // CHECK-LABEL: test_mm512_mul_round_pd
35153531 // CHECK: @llvm.x86.avx512.mul.pd.512
@@ -3598,6 +3614,8 @@ __m128 test_mm_mask_mul_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
35983614 // CHECK-NEXT: insertelement <4 x float> %{{.*}}, float %{{.*}}, i64 0
35993615 return _mm_mask_mul_ss(__W,__U,__A,__B);
36003616}
3617+ TEST_CONSTEXPR(match_v4sf(_mm_mask_mul_ss((__m128)(__v4sf){42.0f, -1.0f, -2.0f, -3.0f}, 0x1, (__m128)(__v4sf){6.0f, 9.0f, 9.0f, 9.0f}, (__m128)(__v4sf){7.0f, 8.0f, 8.0f, 8.0f}), 42.0f, -1.0f, -2.0f, -3.0f));
3618+
36013619__m128 test_mm_maskz_mul_ss(__mmask8 __U, __m128 __A, __m128 __B) {
36023620 // CHECK-LABEL: test_mm_maskz_mul_ss
36033621 // CHECK-NOT: @llvm.x86.avx512.mask.mul.ss.round
@@ -3613,6 +3631,8 @@ __m128 test_mm_maskz_mul_ss(__mmask8 __U, __m128 __A, __m128 __B) {
36133631 // CHECK-NEXT: insertelement <4 x float> %{{.*}}, float %{{.*}}, i64 0
36143632 return _mm_maskz_mul_ss(__U,__A,__B);
36153633}
3634+ TEST_CONSTEXPR(match_v4sf(_mm_maskz_mul_ss(0x1, (__m128)(__v4sf){6.0f, 9.0f, 9.0f, 9.0f}, (__m128)(__v4sf){7.0f, 8.0f, 8.0f, 8.0f}), 42.0f, 0.0f, 0.0f, 0.0f));
3635+
36163636__m128d test_mm_mul_round_sd(__m128d __A, __m128d __B) {
36173637 // CHECK-LABEL: test_mm_mul_round_sd
36183638 // CHECK: @llvm.x86.avx512.mask.mul.sd.round
@@ -3643,6 +3663,8 @@ __m128d test_mm_mask_mul_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
36433663 // CHECK-NEXT: insertelement <2 x double> %{{.*}}, double %{{.*}}, i64 0
36443664 return _mm_mask_mul_sd(__W,__U,__A,__B);
36453665}
3666+ TEST_CONSTEXPR(match_v2df(_mm_mask_mul_sd((__m128d)(__v2df){123.0, -9.0}, 0x1, (__m128d)(__v2df){2.5, 1.0}, (__m128d)(__v2df){4.0, 2.0}), 10.0, -9.0));
3667+
36463668__m128d test_mm_maskz_mul_sd(__mmask8 __U, __m128d __A, __m128d __B) {
36473669 // CHECK-LABEL: test_mm_maskz_mul_sd
36483670 // CHECK-NOT: @llvm.x86.avx512.mask.mul.sd.round
@@ -3658,6 +3680,8 @@ __m128d test_mm_maskz_mul_sd(__mmask8 __U, __m128d __A, __m128d __B) {
36583680 // CHECK-NEXT: insertelement <2 x double> %{{.*}}, double %{{.*}}, i64 0
36593681 return _mm_maskz_mul_sd(__U,__A,__B);
36603682}
3683+ TEST_CONSTEXPR(match_v2df(_mm_maskz_mul_sd(0x1, (__m128d)(__v2df){2.5, 1.0}, (__m128d)(__v2df){4.0, 2.0}), 10.0, 0.0));
3684+
36613685__m512d test_mm512_div_round_pd(__m512d __A, __m512d __B) {
36623686 // CHECK-LABEL: test_mm512_div_round_pd
36633687 // CHECK: @llvm.x86.avx512.div.pd.512
@@ -3757,6 +3781,8 @@ __m128 test_mm_mask_div_ss(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) {
37573781 // CHECK-NEXT: insertelement <4 x float> %{{.*}}, float %{{.*}}, i64 0
37583782 return _mm_mask_div_ss(__W,__U,__A,__B);
37593783}
3784+ TEST_CONSTEXPR(match_v4sf(_mm_mask_div_ss((__m128)(__v4sf){-7.0f, 5.0f, 6.0f, 7.0f}, 0x1, (__m128)(__v4sf){9.0f, 1.0f, 1.0f, 1.0f}, (__m128)(__v4sf){3.0f, 2.0f, 2.0f, 2.0f}), 3.0f, 5.0f, 6.0f, 7.0f));
3785+
37603786__m128 test_mm_maskz_div_ss(__mmask8 __U, __m128 __A, __m128 __B) {
37613787 // CHECK-LABEL: test_mm_maskz_div_ss
37623788 // CHECK: extractelement <4 x float> %{{.*}}, i32 0
@@ -3771,6 +3797,8 @@ __m128 test_mm_maskz_div_ss(__mmask8 __U, __m128 __A, __m128 __B) {
37713797 // CHECK-NEXT: insertelement <4 x float> %{{.*}}, float %{{.*}}, i64 0
37723798 return _mm_maskz_div_ss(__U,__A,__B);
37733799}
3800+ TEST_CONSTEXPR(match_v4sf(_mm_maskz_div_ss(0x1, (__m128)(__v4sf){9.0f, 1.0f, 1.0f, 1.0f}, (__m128)(__v4sf){3.0f, 2.0f, 2.0f, 2.0f}), 3.0f, 0.0f, 0.0f, 0.0f));
3801+
37743802__m128d test_mm_div_round_sd(__m128d __A, __m128d __B) {
37753803 // CHECK-LABEL: test_mm_div_round_sd
37763804 // CHECK: @llvm.x86.avx512.mask.div.sd.round
@@ -3800,6 +3828,8 @@ __m128d test_mm_mask_div_sd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
38003828 // CHECK-NEXT: insertelement <2 x double> %{{.*}}, double %{{.*}}, i64 0
38013829 return _mm_mask_div_sd(__W,__U,__A,__B);
38023830}
3831+ TEST_CONSTEXPR(match_v2df(_mm_mask_div_sd((__m128d)(__v2df){-8.0, 44.0}, 0x1, (__m128d)(__v2df){8.0, 10.0}, (__m128d)(__v2df){2.0, 20.0}), 4.0, 44.0));
3832+
38033833__m128d test_mm_maskz_div_sd(__mmask8 __U, __m128d __A, __m128d __B) {
38043834 // CHECK-LABEL: test_mm_maskz_div_sd
38053835 // CHECK: extractelement <2 x double> %{{.*}}, i32 0
@@ -3814,6 +3844,8 @@ __m128d test_mm_maskz_div_sd(__mmask8 __U, __m128d __A, __m128d __B) {
38143844 // CHECK-NEXT: insertelement <2 x double> %{{.*}}, double %{{.*}}, i64 0
38153845 return _mm_maskz_div_sd(__U,__A,__B);
38163846}
3847+ TEST_CONSTEXPR(match_v2df(_mm_maskz_div_sd(0x1, (__m128d)(__v2df){8.0, 10.0}, (__m128d)(__v2df){2.0, 20.0}), 4.0, 0.0));
3848+
38173849__m128 test_mm_max_round_ss(__m128 __A, __m128 __B) {
38183850 // CHECK-LABEL: test_mm_max_round_ss
38193851 // CHECK: @llvm.x86.avx512.mask.max.ss.round
0 commit comments