@@ -5516,40 +5516,72 @@ __m512d test_mm512_permute_pd(__m512d __X) {
55165516 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
55175517 return _mm512_permute_pd(__X, 2);
55185518}
5519+ TEST_CONSTEXPR(match_m512d(_mm512_permute_pd(((__m512d){0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0}), 2), 0.0, 1.0, 2.0, 2.0, 4.0, 4.0, 6.0, 6.0));
55195520
55205521__m512d test_mm512_mask_permute_pd(__m512d __W, __mmask8 __U, __m512d __X) {
55215522 // CHECK-LABEL: test_mm512_mask_permute_pd
55225523 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
55235524 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
55245525 return _mm512_mask_permute_pd(__W, __U, __X, 2);
55255526}
5527+ TEST_CONSTEXPR(match_m512d(_mm512_mask_permute_pd(
5528+ ((__m512d){0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0}),
5529+ (__mmask8)0b01010100,
5530+ ((__m512d){8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0}),
5531+ 2),
5532+ 0.0, 1.0, 10.0, 3.0, 12.0, 5.0, 14.0, 7.0
5533+ ));
55265534
55275535__m512d test_mm512_maskz_permute_pd(__mmask8 __U, __m512d __X) {
55285536 // CHECK-LABEL: test_mm512_maskz_permute_pd
55295537 // CHECK: shufflevector <8 x double> %{{.*}}, <8 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
55305538 // CHECK: select <8 x i1> %{{.*}}, <8 x double> %{{.*}}, <8 x double> %{{.*}}
55315539 return _mm512_maskz_permute_pd(__U, __X, 2);
55325540}
5541+ TEST_CONSTEXPR(match_m512d(_mm512_maskz_permute_pd(
5542+ (__mmask8)0b01010100,
5543+ ((__m512d){0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0}),
5544+ 2),
5545+ 0.0, 0.0, 2.0, 0.0, 4.0, 0.0, 6.0, 0.0
5546+ ));
55335547
55345548__m512 test_mm512_permute_ps(__m512 __X) {
55355549 // CHECK-LABEL: test_mm512_permute_ps
55365550 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> poison, <16 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4, i32 10, i32 8, i32 8, i32 8, i32 14, i32 12, i32 12, i32 12>
55375551 return _mm512_permute_ps(__X, 2);
55385552}
5553+ TEST_CONSTEXPR(match_m512(_mm512_permute_ps(
5554+ ((__m512){0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}),
5555+ 2),
5556+ 2, 0, 0, 0, 6, 4, 4, 4, 10, 8, 8, 8, 14, 12, 12, 12
5557+ ));
55395558
55405559__m512 test_mm512_mask_permute_ps(__m512 __W, __mmask16 __U, __m512 __X) {
55415560 // CHECK-LABEL: test_mm512_mask_permute_ps
55425561 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> poison, <16 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4, i32 10, i32 8, i32 8, i32 8, i32 14, i32 12, i32 12, i32 12>
55435562 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
55445563 return _mm512_mask_permute_ps(__W, __U, __X, 2);
55455564}
5565+ TEST_CONSTEXPR(match_m512(_mm512_mask_permute_ps(
5566+ ((__m512){0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}),
5567+ (__mmask16)0b1010101010101010,
5568+ ((__m512){16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}),
5569+ 2),
5570+ 0, 16, 2, 16, 4, 20, 6, 20, 8, 24, 10, 24, 12, 28, 14, 28
5571+ ));
55465572
55475573__m512 test_mm512_maskz_permute_ps(__mmask16 __U, __m512 __X) {
55485574 // CHECK-LABEL: test_mm512_maskz_permute_ps
55495575 // CHECK: shufflevector <16 x float> %{{.*}}, <16 x float> poison, <16 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4, i32 10, i32 8, i32 8, i32 8, i32 14, i32 12, i32 12, i32 12>
55505576 // CHECK: select <16 x i1> %{{.*}}, <16 x float> %{{.*}}, <16 x float> %{{.*}}
55515577 return _mm512_maskz_permute_ps(__U, __X, 2);
55525578}
5579+ TEST_CONSTEXPR(match_m512(_mm512_maskz_permute_ps(
5580+ (__mmask16)0b1010101010101010,
5581+ ((__m512){0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}),
5582+ 2),
5583+ 0, 0, 0, 0, 0, 4, 0, 4, 0, 8, 0, 8, 0, 12, 0, 12
5584+ ));
55535585
55545586__m512d test_mm512_permutevar_pd(__m512d __A, __m512i __C) {
55555587 // CHECK-LABEL: test_mm512_permutevar_pd
0 commit comments