@@ -146,20 +146,32 @@ __m256i test_mm256_blend_epi16(__m256i a, __m256i b) {
146146 // 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>
147147 return _mm256_blend_epi16 (a , b , 2 );
148148}
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 ));
149153
150154__m128i test_mm_blend_epi32 (__m128i a , __m128i b ) {
151155 // CHECK-LABEL: test_mm_blend_epi32
152156 // CHECK-NOT: @llvm.x86.avx2.pblendd.128
153157 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 4, i32 1, i32 6, i32 3>
154158 return _mm_blend_epi32 (a , b , 0x05 );
155159}
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 ));
156164
157165__m256i test_mm256_blend_epi32 (__m256i a , __m256i b ) {
158166 // CHECK-LABEL: test_mm256_blend_epi32
159167 // CHECK-NOT: @llvm.x86.avx2.pblendd.256
160168 // 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>
161169 return _mm256_blend_epi32 (a , b , 0x35 );
162170}
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 ));
163175
164176__m256i test_mm256_blendv_epi8 (__m256i a , __m256i b , __m256i m ) {
165177 // CHECK-LABEL: test_mm256_blendv_epi8
0 commit comments