@@ -1437,80 +1437,93 @@ __m512 test_mm512_insertf32x8(__m512 __A, __m256 __B) {
14371437 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
14381438 return _mm512_insertf32x8 (__A , __B , 1 );
14391439}
1440+ TEST_CONSTEXPR (match_m512 (_mm512_insertf32x8 (((__m512 ){1.0f , 2.0f , 3.0f , 4.0f , 5.0f , 6.0f , 7.0f , 8.0f , 9.0f , 10.0f , 11.0f , 12.0f , 13.0f , 14.0f , 15.0f , 16.0f }), ((__m256 ){20.0f , 30.0f , 40.0f , 50.0f , 60.0f , 70.0f , 80.0f , 90.0f }), 1 ), 1.0f , 2.0f , 3.0f , 4.0f , 5.0f , 6.0f , 7.0f , 8.0f , 20.0f , 30.0f , 40.0f , 50.0f , 60.0f , 70.0f , 80.0f , 90.0f ));
14401441
14411442__m512 test_mm512_mask_insertf32x8 (__m512 __W , __mmask16 __U , __m512 __A , __m256 __B ) {
14421443 // CHECK-LABEL: test_mm512_mask_insertf32x8
14431444 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
14441445 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
14451446 return _mm512_mask_insertf32x8 (__W , __U , __A , __B , 1 );
14461447}
1448+ TEST_CONSTEXPR (match_m512 (_mm512_mask_insertf32x8 (((__m512 ){2.0f ,3.0f ,4.0f ,5.0f ,6.0f ,7.0f ,8.0f ,9.0f ,10.0f ,11.0f ,12.0f ,13.0f ,14.0f ,15.0f ,16.0f ,17.0f }), (0xF000 ), ((__m512 ){2.0f ,3.0f ,4.0f ,5.0f ,6.0f ,7.0f ,8.0f ,9.0f ,10.0f ,11.0f ,12.0f ,13.0f ,14.0f ,15.0f ,16.0f ,17.0f }), ((__m256 ){20.0f ,30.0f ,40.0f ,50.0f ,60.0f ,70.0f ,80.0f ,90.0f }), 1 ), 2.0f ,3.0f ,4.0f ,5.0f ,6.0f ,7.0f ,8.0f ,9.0f ,10.0f ,11.0f ,12.0f ,13.0f ,60.0f ,70.0f ,80.0f ,90.0f ));
14471449
14481450__m512 test_mm512_maskz_insertf32x8 (__mmask16 __U , __m512 __A , __m256 __B ) {
14491451 // CHECK-LABEL: test_mm512_maskz_insertf32x8
14501452 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
14511453 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
14521454 return _mm512_maskz_insertf32x8 (__U , __A , __B , 1 );
14531455}
1456+ TEST_CONSTEXPR (match_m512 (_mm512_maskz_insertf32x8 ((0x0F00 ), ((__m512 ){1.0f , 2.0f , 3.0f , 4.0f , 5.0f , 6.0f , 7.0f , 8.0f , 9.0f , 10.0f , 11.0f , 12.0f , 13.0f , 14.0f , 15.0f , 16.0f }), ((__m256 ){20.0f , 30.0f , 40.0f , 50.0f , 60.0f , 70.0f , 80.0f , 90.0f }), 1 ), 0.0f , 0.0f , 0.0f , 0.0f , 0.0f , 0.0f , 0.0f , 0.0f , 20.0f , 30.0f , 40.0f , 50.0f , 0.0f , 0.0f , 0.0f , 0.0f ));
14541457
14551458__m512d test_mm512_insertf64x2 (__m512d __A , __m128d __B ) {
14561459 // CHECK-LABEL: test_mm512_insertf64x2
14571460 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 8, i32 9>
14581461 return _mm512_insertf64x2 (__A , __B , 3 );
14591462}
1463+ TEST_CONSTEXPR (match_m512d (_mm512_insertf64x2 (((__m512d ){1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 , 7.0 , 8.0 }), ((__m128d ){10.0 , 20.0 }), 3 ), 1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 , 10.0 , 20.0 ));
14601464
14611465__m512d test_mm512_mask_insertf64x2 (__m512d __W , __mmask8 __U , __m512d __A , __m128d __B ) {
14621466 // CHECK-LABEL: test_mm512_mask_insertf64x2
14631467 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 8, i32 9>
14641468 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
14651469 return _mm512_mask_insertf64x2 (__W , __U , __A , __B , 3 );
14661470}
1471+ TEST_CONSTEXPR (match_m512d (_mm512_mask_insertf64x2 (((__m512d ){2.0 ,3.0 ,4.0 ,5.0 ,6.0 ,7.0 ,8.0 ,9.0 }), (0x80 ), ((__m512d ){2.0 ,3.0 ,4.0 ,5.0 ,6.0 ,7.0 ,8.0 ,9.0 }), ((__m128d ){10.0 , 20.0 }), 3 ), 2.0 ,3.0 ,4.0 ,5.0 ,6.0 ,7.0 ,8.0 ,20.0 ));
14671472
14681473__m512d test_mm512_maskz_insertf64x2 (__mmask8 __U , __m512d __A , __m128d __B ) {
14691474 // CHECK-LABEL: test_mm512_maskz_insertf64x2
14701475 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 8, i32 9>
14711476 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
14721477 return _mm512_maskz_insertf64x2 (__U , __A , __B , 3 );
14731478}
1479+ TEST_CONSTEXPR (match_m512d (_mm512_maskz_insertf64x2 ((0x80 ), ((__m512d ){1.0 ,2.0 ,3.0 ,4.0 ,5.0 ,6.0 ,7.0 ,8.0 }), ((__m128d ){10.0 ,20.0 }), 3 ), 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,20.0 ));
14741480
14751481__m512i test_mm512_inserti32x8 (__m512i __A , __m256i __B ) {
14761482 // CHECK-LABEL: test_mm512_inserti32x8
14771483 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
14781484 return _mm512_inserti32x8 (__A , __B , 1 );
14791485}
1486+ TEST_CONSTEXPR (match_v16si (_mm512_inserti32x8 (((__m512i )(__v16si ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 }), ((__m256i )(__v8si ){20 ,30 ,40 ,50 ,60 ,70 ,80 ,90 }), 1 ), 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 ));
14801487
14811488__m512i test_mm512_mask_inserti32x8 (__m512i __W , __mmask16 __U , __m512i __A , __m256i __B ) {
14821489 // CHECK-LABEL: test_mm512_mask_inserti32x8
14831490 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
14841491 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
14851492 return _mm512_mask_inserti32x8 (__W , __U , __A , __B , 1 );
14861493}
1494+ TEST_CONSTEXPR (match_v16si (_mm512_mask_inserti32x8 (((__m512i )(__v16si ){2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 }), (0xF000 ), ((__m512i )(__v16si ){2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 }), ((__m256i )(__v8si ){20 ,30 ,40 ,50 ,60 ,70 ,80 ,90 }), 1 ), 2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,60 ,70 ,80 ,90 ));
14871495
14881496__m512i test_mm512_maskz_inserti32x8 (__mmask16 __U , __m512i __A , __m256i __B ) {
14891497 // CHECK-LABEL: test_mm512_maskz_inserti32x8
14901498 // CHECK: shufflevector <16 x i32> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
14911499 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
14921500 return _mm512_maskz_inserti32x8 (__U , __A , __B , 1 );
14931501}
1502+ TEST_CONSTEXPR (match_v16si (_mm512_maskz_inserti32x8 ((0x0F00 ), ((__m512i )(__v16si ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 }), ((__m256i )(__v8si ){20 ,30 ,40 ,50 ,60 ,70 ,80 ,90 }), 1 ), 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,20 ,30 ,40 ,50 ,0 ,0 ,0 ,0 ));
14941503
14951504__m512i test_mm512_inserti64x2 (__m512i __A , __m128i __B ) {
14961505 // CHECK-LABEL: test_mm512_inserti64x2
14971506 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 6, i32 7>
14981507 return _mm512_inserti64x2 (__A , __B , 1 );
14991508}
1509+ TEST_CONSTEXPR (match_m512i (_mm512_inserti64x2 (((__m512i ){1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }), ((__m128i ){10 , 20 }), 1 ), 1 , 2 , 10 , 20 , 5 , 6 , 7 , 8 ));
15001510
15011511__m512i test_mm512_mask_inserti64x2 (__m512i __W , __mmask8 __U , __m512i __A , __m128i __B ) {
15021512 // CHECK-LABEL: test_mm512_mask_inserti64x2
15031513 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 6, i32 7>
15041514 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
15051515 return _mm512_mask_inserti64x2 (__W , __U , __A , __B , 1 );
15061516}
1517+ TEST_CONSTEXPR (match_m512i (_mm512_mask_inserti64x2 (((__m512i ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 }), (0x08 ), ((__m512i ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 }), ((__m128i ){10 , 20 }), 1 ), 1 , 2 , 3 , 20 , 5 , 6 , 7 , 8 ));
15071518
15081519__m512i test_mm512_maskz_inserti64x2 (__mmask8 __U , __m512i __A , __m128i __B ) {
15091520 // CHECK-LABEL: test_mm512_maskz_inserti64x2
15101521 // CHECK: shufflevector <8 x i64> %{{.*}}, <8 x i64> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 6, i32 7>
15111522 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
15121523 return _mm512_maskz_inserti64x2 (__U , __A , __B , 1 );
15131524}
1525+ TEST_CONSTEXPR (match_m512i (_mm512_maskz_inserti64x2 ((0x0C ), ((__m512i ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 }), ((__m128i ){10 , 20 }), 1 ), 0 , 0 , 10 , 20 , 0 , 0 , 0 , 0 ));
1526+
15141527__mmask8 test_mm512_mask_fpclass_pd_mask (__mmask8 __U , __m512d __A ) {
15151528 // CHECK-LABEL: test_mm512_mask_fpclass_pd_mask
15161529 // CHECK: @llvm.x86.avx512.fpclass.pd.512
0 commit comments