@@ -146,20 +146,32 @@ __m256i test_mm256_blend_epi16(__m256i a, __m256i b) {
146
146
// CHECK: shufflevector <16 x i16> %{{.*}}, <16 x i16> %{{.*}}, <16 x i32> <i32 0, i32 17, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 25, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
147
147
return _mm256_blend_epi16 (a , b , 2 );
148
148
}
149
+ TEST_CONSTEXPR (match_v16hi (_mm256_blend_epi16 (((__m256i )(__v16hi ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 }), ((__m256i )(__v16hi ){-1 ,-2 ,-3 ,-4 ,-5 ,-6 ,-7 ,-8 ,-9 ,-10 ,-11 ,-12 ,-13 ,-14 ,-15 ,-16 }), 0x00 ), 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ));
150
+ TEST_CONSTEXPR (match_v16hi (_mm256_blend_epi16 (((__m256i )(__v16hi ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 }), ((__m256i )(__v16hi ){-1 ,-2 ,-3 ,-4 ,-5 ,-6 ,-7 ,-8 ,-9 ,-10 ,-11 ,-12 ,-13 ,-14 ,-15 ,-16 }), 0x5A ), 1 ,-2 ,3 ,-4 ,-5 ,6 ,-7 ,8 ,9 ,-10 ,11 ,-12 ,-13 ,14 ,-15 ,16 ));
151
+ TEST_CONSTEXPR (match_v16hi (_mm256_blend_epi16 (((__m256i )(__v16hi ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 }), ((__m256i )(__v16hi ){-1 ,-2 ,-3 ,-4 ,-5 ,-6 ,-7 ,-8 ,-9 ,-10 ,-11 ,-12 ,-13 ,-14 ,-15 ,-16 }), 0x94 ), 1 ,2 ,-3 ,4 ,-5 ,6 ,7 ,-8 ,9 ,10 ,-11 ,12 ,-13 ,14 ,15 ,-16 ));
152
+ TEST_CONSTEXPR (match_v16hi (_mm256_blend_epi16 (((__m256i )(__v16hi ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 }), ((__m256i )(__v16hi ){-1 ,-2 ,-3 ,-4 ,-5 ,-6 ,-7 ,-8 ,-9 ,-10 ,-11 ,-12 ,-13 ,-14 ,-15 ,-16 }), 0xFF ), -1 ,-2 ,-3 ,-4 ,-5 ,-6 ,-7 ,-8 ,-9 ,-10 ,-11 ,-12 ,-13 ,-14 ,-15 ,-16 ));
149
153
150
154
__m128i test_mm_blend_epi32 (__m128i a , __m128i b ) {
151
155
// CHECK-LABEL: test_mm_blend_epi32
152
156
// CHECK-NOT: @llvm.x86.avx2.pblendd.128
153
157
// CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 4, i32 1, i32 6, i32 3>
154
158
return _mm_blend_epi32 (a , b , 0x05 );
155
159
}
160
+ TEST_CONSTEXPR (match_v4si (_mm_blend_epi32 (((__m128i )(__v4si ){1 ,2 ,3 ,4 }), ((__m128i )(__v4si ){-1 ,-2 ,-3 ,-4 }), 0x0 ), 1 ,2 ,3 ,4 ));
161
+ TEST_CONSTEXPR (match_v4si (_mm_blend_epi32 (((__m128i )(__v4si ){1 ,2 ,3 ,4 }), ((__m128i )(__v4si ){-1 ,-2 ,-3 ,-4 }), 0x5 ), -1 ,2 ,-3 ,4 ));
162
+ TEST_CONSTEXPR (match_v4si (_mm_blend_epi32 (((__m128i )(__v4si ){1 ,2 ,3 ,4 }), ((__m128i )(__v4si ){-1 ,-2 ,-3 ,-4 }), 0xA ), 1 ,-2 ,3 ,-4 ));
163
+ TEST_CONSTEXPR (match_v4si (_mm_blend_epi32 (((__m128i )(__v4si ){1 ,2 ,3 ,4 }), ((__m128i )(__v4si ){-1 ,-2 ,-3 ,-4 }), 0xF ), -1 ,-2 ,-3 ,-4 ));
156
164
157
165
__m256i test_mm256_blend_epi32 (__m256i a , __m256i b ) {
158
166
// CHECK-LABEL: test_mm256_blend_epi32
159
167
// CHECK-NOT: @llvm.x86.avx2.pblendd.256
160
168
// CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 8, i32 1, i32 10, i32 3, i32 12, i32 13, i32 6, i32 7>
161
169
return _mm256_blend_epi32 (a , b , 0x35 );
162
170
}
171
+ TEST_CONSTEXPR (match_v8si (_mm256_blend_epi32 (((__m256i )(__v8si ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 }), ((__m256i )(__v8si ){-1 ,-2 ,-3 ,-4 ,-5 ,-6 ,-7 ,-8 }), 0x00 ), 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ));
172
+ TEST_CONSTEXPR (match_v8si (_mm256_blend_epi32 (((__m256i )(__v8si ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 }), ((__m256i )(__v8si ){-1 ,-2 ,-3 ,-4 ,-5 ,-6 ,-7 ,-8 }), 0xA5 ), -1 ,2 ,-3 ,4 ,5 ,-6 ,7 ,-8 ));
173
+ TEST_CONSTEXPR (match_v8si (_mm256_blend_epi32 (((__m256i )(__v8si ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 }), ((__m256i )(__v8si ){-1 ,-2 ,-3 ,-4 ,-5 ,-6 ,-7 ,-8 }), 0x94 ), 1 ,2 ,-3 ,4 ,-5 ,6 ,7 ,-8 ));
174
+ TEST_CONSTEXPR (match_v8si (_mm256_blend_epi32 (((__m256i )(__v8si ){1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 }), ((__m256i )(__v8si ){-1 ,-2 ,-3 ,-4 ,-5 ,-6 ,-7 ,-8 }), 0xFF ), -1 ,-2 ,-3 ,-4 ,-5 ,-6 ,-7 ,-8 ));
163
175
164
176
__m256i test_mm256_blendv_epi8 (__m256i a , __m256i b , __m256i m ) {
165
177
// CHECK-LABEL: test_mm256_blendv_epi8
0 commit comments