@@ -1039,26 +1039,30 @@ int test_mm256_extract_epi8(__m256i A) {
10391039 // CHECK: zext i8 %{{.*}} to i32
10401040 return _mm256_extract_epi8 (A , 31 );
10411041}
1042+ TEST_CONSTEXPR (_mm256_extract_epi8 (((__m256i )(__v32qs ){0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 }), 45 ) == 13 );
10421043
10431044int test_mm256_extract_epi16 (__m256i A ) {
10441045 // CHECK-LABEL: test_mm256_extract_epi16
10451046 // CHECK: extractelement <16 x i16> %{{.*}}, {{i32|i64}} 15
10461047 // CHECK: zext i16 %{{.*}} to i32
10471048 return _mm256_extract_epi16 (A , 15 );
10481049}
1050+ TEST_CONSTEXPR (_mm256_extract_epi16 (((__m256i )(__v16hi ){0 , 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 , 22 , 24 , 26 , 28 , 30 }), 50 ) == 4 );
10491051
10501052int test_mm256_extract_epi32 (__m256i A ) {
10511053 // CHECK-LABEL: test_mm256_extract_epi32
10521054 // CHECK: extractelement <8 x i32> %{{.*}}, {{i32|i64}} 7
10531055 return _mm256_extract_epi32 (A , 7 );
10541056}
1057+ TEST_CONSTEXPR (_mm256_extract_epi32 (((__m256i )(__v8si ){0 , 5 , 10 , 15 , 20 , 25 , 30 , 35 }), 18 ) == 10 );
10551058
10561059#if __x86_64__
10571060long long test_mm256_extract_epi64 (__m256i A ) {
10581061 // X64-LABEL: test_mm256_extract_epi64
10591062 // X64: extractelement <4 x i64> %{{.*}}, {{i32|i64}} 3
10601063 return _mm256_extract_epi64 (A , 3 );
10611064}
1065+ TEST_CONSTEXPR (_mm256_extract_epi64 (((__m256i )(__v4di ){5 , 15 , 25 , 35 }), 14 ) == 25 );
10621066#endif
10631067
10641068__m128d test_mm256_extractf128_pd (__m256d A ) {
@@ -1120,25 +1124,29 @@ __m256i test_mm256_insert_epi8(__m256i x, char b) {
11201124 // CHECK: insertelement <32 x i8> %{{.*}}, i8 %{{.*}}, {{i32|i64}} 14
11211125 return _mm256_insert_epi8 (x , b , 14 );
11221126}
1127+ TEST_CONSTEXPR (match_v32qi (_mm256_insert_epi8 (((__m256i )(__v32qs ){0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 }), 77 , 47 ), 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 77 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 ));
11231128
11241129__m256i test_mm256_insert_epi16 (__m256i x , int b ) {
11251130 // CHECK-LABEL: test_mm256_insert_epi16
11261131 // CHECK: insertelement <16 x i16> %{{.*}}, i16 %{{.*}}, {{i32|i64}} 4
11271132 return _mm256_insert_epi16 (x , b , 4 );
11281133}
1134+ TEST_CONSTEXPR (match_v16hi (_mm256_insert_epi16 (((__m256i )(__v16hi ){0 , 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 , 22 , 24 , 26 , 28 , 30 }), 909 , 62 ), 0 , 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 , 22 , 24 , 26 , 909 , 30 ));
11291135
11301136__m256i test_mm256_insert_epi32 (__m256i x , int b ) {
11311137 // CHECK-LABEL: test_mm256_insert_epi32
11321138 // CHECK: insertelement <8 x i32> %{{.*}}, i32 %{{.*}}, {{i32|i64}} 5
11331139 return _mm256_insert_epi32 (x , b , 5 );
11341140}
1141+ TEST_CONSTEXPR (match_v8si (_mm256_insert_epi32 (((__m256i )(__v8si ){ 0 , 5 , 10 , 15 , 20 , 25 , 30 , 35 }), 4321 , 18 ), 0 , 5 , 4321 , 15 , 20 , 25 , 30 , 35 ));
11351142
11361143#if __x86_64__
11371144__m256i test_mm256_insert_epi64 (__m256i x , long long b ) {
11381145 // X64-LABEL: test_mm256_insert_epi64
11391146 // X64: insertelement <4 x i64> %{{.*}}, i64 %{{.*}}, {{i32|i64}} 2
11401147 return _mm256_insert_epi64 (x , b , 2 );
11411148}
1149+ TEST_CONSTEXPR (match_v4di (_mm256_insert_epi64 (((__m256i )(__v4di ){5 , 15 , 25 , 35 }), -123456789LL , 10 ), 5 , 15 , -123456789LL , 35 ));
11421150#endif
11431151
11441152__m256d test_mm256_insertf128_pd (__m256d A , __m128d B ) {
0 commit comments