Skip to content

Commit 3028c5f

Browse files
committed
Add test and refactoring
1 parent 63c95b4 commit 3028c5f

File tree

4 files changed

+48
-42
lines changed

4 files changed

+48
-42
lines changed

clang/lib/Headers/avx512vldqintrin.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,7 +1075,7 @@ _mm256_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A)
10751075
#define _mm256_extractf64x2_pd(A, imm) \
10761076
((__m128d)__builtin_ia32_extractf64x2_256_mask((__v4df)(__m256d)(A), \
10771077
(int)(imm), \
1078-
(__v2df)_mm_undefined_pd(), \
1078+
(__v2df)_mm_setzero_pd(), \
10791079
(__mmask8)-1))
10801080

10811081
#define _mm256_mask_extractf64x2_pd(W, U, A, imm) \
@@ -1093,7 +1093,7 @@ _mm256_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A)
10931093
#define _mm256_extracti64x2_epi64(A, imm) \
10941094
((__m128i)__builtin_ia32_extracti64x2_256_mask((__v4di)(__m256i)(A), \
10951095
(int)(imm), \
1096-
(__v2di)_mm_undefined_si128(), \
1096+
(__v2di)_mm_setzero_si128(), \
10971097
(__mmask8)-1))
10981098

10991099
#define _mm256_mask_extracti64x2_epi64(W, U, A, imm) \

clang/lib/Headers/avx512vlintrin.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7622,7 +7622,7 @@ _mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
76227622
#define _mm256_extractf32x4_ps(A, imm) \
76237623
((__m128)__builtin_ia32_extractf32x4_256_mask((__v8sf)(__m256)(A), \
76247624
(int)(imm), \
7625-
(__v4sf)_mm_undefined_ps(), \
7625+
(__v4sf)_mm_setzero_ps(), \
76267626
(__mmask8)-1))
76277627

76287628
#define _mm256_mask_extractf32x4_ps(W, U, A, imm) \
@@ -7640,7 +7640,7 @@ _mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
76407640
#define _mm256_extracti32x4_epi32(A, imm) \
76417641
((__m128i)__builtin_ia32_extracti32x4_256_mask((__v8si)(__m256i)(A), \
76427642
(int)(imm), \
7643-
(__v4si)_mm_undefined_si128(), \
7643+
(__v4si)_mm_setzero_si128(), \
76447644
(__mmask8)-1))
76457645

76467646
#define _mm256_mask_extracti32x4_epi32(W, U, A, imm) \

clang/test/CodeGen/X86/avx512vl-builtins.c

Lines changed: 35 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9520,9 +9520,8 @@ __m128 test_mm256_extractf32x4_ps(__m256 __A) {
95209520
// CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
95219521
return _mm256_extractf32x4_ps(__A, 1);
95229522
}
9523-
TEST_CONSTEXPR(match_m128(_mm256_extractf32x4_ps(((__m256){
9524-
0,1,2,3, 4,5,6,7
9525-
}), 1),
9523+
TEST_CONSTEXPR(match_m128(
9524+
_mm256_extractf32x4_ps(((__m256){0,1,2,3, 4,5,6,7}), 1),
95269525
4.0f, 5.0f, 6.0f, 7.0f));
95279526

95289527
__m128 test_mm256_mask_extractf32x4_ps(__m128 __W, __mmask8 __U, __m256 __A) {
@@ -9531,59 +9530,66 @@ __m128 test_mm256_mask_extractf32x4_ps(__m128 __W, __mmask8 __U, __m256 __A) {
95319530
// CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
95329531
return _mm256_mask_extractf32x4_ps(__W, __U, __A, 1);
95339532
}
9534-
TEST_CONSTEXPR( match_m128(_mm256_mask_extractf32x4_ps(
9535-
(__m128){100,101,102,103}, // W (merge)
9536-
(__mmask8)0x5, // 0101b
9537-
(__m256){0,1,2,3, 4,5,6,7},
9538-
1),
9539-
4.0f, 101.0f, 6.0f, 103.0f));
9533+
TEST_CONSTEXPR(match_m128(
9534+
_mm256_mask_extractf32x4_ps(
9535+
(((__m128){100,101,102,103})),
9536+
(__mmask8)0x5,
9537+
(((__m256){0,1,2,3, 4,5,6,7})),
9538+
1),
9539+
4.0f, 101.0f, 6.0f, 103.0f));
95409540

95419541
__m128 test_mm256_maskz_extractf32x4_ps(__mmask8 __U, __m256 __A) {
95429542
// CHECK-LABEL: test_mm256_maskz_extractf32x4_ps
95439543
// CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
95449544
// CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
95459545
return _mm256_maskz_extractf32x4_ps(__U, __A, 1);
95469546
}
9547-
TEST_CONSTEXPR(match_m128(_mm256_maskz_extractf32x4_ps(
9548-
(__mmask8)0x3,
9549-
(__m256){0,1,2,3, 4,5,6,7},
9550-
1),
9551-
4.0f, 5.0f, 0.0f, 0.0f));
9547+
TEST_CONSTEXPR(match_m128(
9548+
_mm256_maskz_extractf32x4_ps(
9549+
(__mmask8)0x3,
9550+
(((__m256){0,1,2,3, 4,5,6,7})),
9551+
1),
9552+
4.0f, 5.0f, 0.0f, 0.0f));
95529553

95539554
__m128i test_mm256_extracti32x4_epi32(__m256i __A) {
95549555
// CHECK-LABEL: test_mm256_extracti32x4_epi32
95559556
// CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
95569557
return _mm256_extracti32x4_epi32(__A, 1);
95579558
}
9558-
TEST_CONSTEXPR(match_m128i(_mm256_extracti32x4_epi32(((__m256i){
9559-
0,1,2,3, 4,5,6,7
9560-
}), 1),
9561-
4, 5, 6, 7));
9559+
TEST_CONSTEXPR(match_m128i(
9560+
_mm256_extracti32x4_epi32(
9561+
(((__m256i)(__v8si){0,1,2,3, 4,5,6,7})), 1),
9562+
0x0000000500000004ULL,
9563+
0x0000000700000006ULL));
95629564

95639565
__m128i test_mm256_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m256i __A) {
95649566
// CHECK-LABEL: test_mm256_mask_extracti32x4_epi32
95659567
// CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
95669568
// CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
95679569
return _mm256_mask_extracti32x4_epi32(__W, __U, __A, 1);
95689570
}
9569-
TEST_CONSTEXPR(match_m128i(_mm256_mask_extracti32x4_epi32(
9570-
(__m128i){100,101,102,103}, // W (merge)
9571-
(__mmask8)0xA, // 1010b
9572-
(__m256i){0,1,2,3, 4,5,6,7},
9573-
1),
9574-
100, 5, 102, 7));
9571+
TEST_CONSTEXPR(match_m128i(
9572+
_mm256_mask_extracti32x4_epi32(
9573+
(((__m128i)(__v4si){100,101,102,103})),
9574+
(__mmask8)0xA,
9575+
(((__m256i)(__v8si){0,1,2,3, 4,5,6,7})),
9576+
1),
9577+
0x0000000500000064ULL,
9578+
0x0000000700000066ULL));
95759579

95769580
__m128i test_mm256_maskz_extracti32x4_epi32(__mmask8 __U, __m256i __A) {
95779581
// CHECK-LABEL: test_mm256_maskz_extracti32x4_epi32
95789582
// CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> poison, <4 x i32> <i32 4, i32 5, i32 6, i32 7>
95799583
// CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
95809584
return _mm256_maskz_extracti32x4_epi32(__U, __A, 1);
95819585
}
9582-
TEST_CONSTEXPR(match_m128i(_mm256_maskz_extracti32x4_epi32(
9583-
(__mmask8)0x3,
9584-
(__m256i){0,1,2,3, 4,5,6,7},
9585-
1),
9586-
4, 5, 0, 0));
9586+
TEST_CONSTEXPR(match_m128i(
9587+
_mm256_maskz_extracti32x4_epi32(
9588+
(__mmask8)0x3,
9589+
(((__m256i)(__v8si){0,1,2,3, 4,5,6,7})),
9590+
1),
9591+
0x0000000500000004ULL,
9592+
0x0000000000000000ULL));
95879593

95889594
__m256 test_mm256_insertf32x4(__m256 __A, __m128 __B) {
95899595
// CHECK-LABEL: test_mm256_insertf32x4

clang/test/CodeGen/X86/avx512vldq-builtins.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,9 +1093,9 @@ __m128d test_mm256_mask_extractf64x2_pd(__m128d __W, __mmask8 __U, __m256d __A)
10931093
return _mm256_mask_extractf64x2_pd(__W, __U, __A, 1);
10941094
}
10951095
TEST_CONSTEXPR(match_m128d(_mm256_mask_extractf64x2_pd(
1096-
(__m128d){100.0, 101.0}, // W(merge)
1096+
(((__m128d){100.0, 101.0})), // W(merge)
10971097
(__mmask8)0x1,
1098-
(__m256d){0.0,1.0,2.0,3.0},
1098+
(((__m256d){0.0,1.0,2.0,3.0})),
10991099
1),
11001100
2.0, 101.0));
11011101

@@ -1107,7 +1107,7 @@ __m128d test_mm256_maskz_extractf64x2_pd(__mmask8 __U, __m256d __A) {
11071107
}
11081108
TEST_CONSTEXPR(match_m128d(_mm256_maskz_extractf64x2_pd(
11091109
(__mmask8)0x2,
1110-
(__m256d){0.0,1.0,2.0,3.0},
1110+
(((__m256d){0.0,1.0,2.0,3.0})),
11111111
1),
11121112
0.0, 3.0));
11131113

@@ -1116,7 +1116,7 @@ __m128i test_mm256_extracti64x2_epi64(__m256i __A) {
11161116
// CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> poison, <2 x i32> <i32 2, i32 3>
11171117
return _mm256_extracti64x2_epi64(__A, 1);
11181118
}
1119-
TEST_CONSTEXPR(match_m128i_64(_mm256_extracti64x2_epi64(((__m256i){0ULL,1ULL,2ULL,3ULL}), 1),
1119+
TEST_CONSTEXPR(match_m128i(_mm256_extracti64x2_epi64(((__m256i){0ULL,1ULL,2ULL,3ULL}), 1),
11201120
2ULL, 3ULL));
11211121

11221122
__m128i test_mm256_mask_extracti64x2_epi64(__m128i __W, __mmask8 __U, __m256i __A) {
@@ -1125,10 +1125,10 @@ __m128i test_mm256_mask_extracti64x2_epi64(__m128i __W, __mmask8 __U, __m256i __
11251125
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
11261126
return _mm256_mask_extracti64x2_epi64(__W, __U, __A, 1);
11271127
}
1128-
TEST_CONSTEXPR(match_m128i_64(_mm256_mask_extracti64x2_epi64(
1129-
(__m128i){100ULL, 101ULL}, // W(merge)
1128+
TEST_CONSTEXPR(match_m128i(_mm256_mask_extracti64x2_epi64(
1129+
(((__m128i){100ULL, 101ULL})), // W(merge)
11301130
(__mmask8)0x1,
1131-
(__m256i){0ULL,1ULL,2ULL,3ULL},
1131+
(((__m256i){0ULL,1ULL,2ULL,3ULL})),
11321132
1),
11331133
2ULL, 101ULL));
11341134

@@ -1138,9 +1138,9 @@ __m128i test_mm256_maskz_extracti64x2_epi64(__mmask8 __U, __m256i __A) {
11381138
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
11391139
return _mm256_maskz_extracti64x2_epi64(__U, __A, 1);
11401140
}
1141-
TEST_CONSTEXPR(match_m128i_64(_mm256_maskz_extracti64x2_epi64(
1141+
TEST_CONSTEXPR(match_m128i(_mm256_maskz_extracti64x2_epi64(
11421142
(__mmask8)0x2,
1143-
(__m256i){0ULL,1ULL,2ULL,3ULL},
1143+
(((__m256i){0ULL,1ULL,2ULL,3ULL})),
11441144
1),
11451145
0ULL, 3ULL));
11461146

0 commit comments

Comments
 (0)