@@ -147,11 +147,13 @@ __m256 test_mm256_castpd_ps(__m256d A) {
147147 // CHECK-LABEL: test_mm256_castpd_ps
148148 return _mm256_castpd_ps (A );
149149}
150+ TEST_CONSTEXPR (match_m256 (_mm256_castpd_ps ((__m256d ){-1.0 , +2.0 , +4.0 , -6.0 }), +0.0f , -1.875f , +0.0f , +2.0f , +0.0f , +2.25f , 0.0f , -2.375f ));
150151
151152__m256i test_mm256_castpd_si256 (__m256d A ) {
152153 // CHECK-LABEL: test_mm256_castpd_si256
153154 return _mm256_castpd_si256 (A );
154155}
156+ TEST_CONSTEXPR (match_m256i (_mm256_castpd_si256 ((__m256d ){-1.0 , +2.0 , -3.0 , +4.0 }), 0xBFF0000000000000ULL , 0x4000000000000000ULL , 0xC008000000000000ULL , 0x4010000000000000ULL ));
155157
156158__m256d test_mm256_castpd128_pd256 (__m128d A ) {
157159 // CHECK-LABEL: test_mm256_castpd128_pd256
@@ -165,16 +167,19 @@ __m128d test_mm256_castpd256_pd128(__m256d A) {
165167 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <2 x i32> <i32 0, i32 1>
166168 return _mm256_castpd256_pd128 (A );
167169}
170+ TEST_CONSTEXPR (match_m128d (_mm256_castpd256_pd128 ((__m256d ){-1.0 , +2.0 , -3.0 , +4.0 }), -1.0 , +2.0 ));
168171
169172__m256d test_mm256_castps_pd (__m256 A ) {
170173 // CHECK-LABEL: test_mm256_castps_pd
171174 return _mm256_castps_pd (A );
172175}
176+ TEST_CONSTEXPR (match_m256d (_mm256_castps_pd ((__m256 ){0.0f , -1.0f , 0.0f , 4.0f , 0.0f , -2.0f , 0.0f , 6.0f }), -0.0078125 , 512.0 , -2.0 , +8192.0 ));
173177
174178__m256i test_mm256_castps_si256 (__m256 A ) {
175179 // CHECK-LABEL: test_mm256_castps_si256
176180 return _mm256_castps_si256 (A );
177181}
182+ TEST_CONSTEXPR (match_m256i (_mm256_castps_si256 ((__m256 ){1.0f , -2.0f , -4.0f , 8.0f , -16.0f , +16.0f , +32.0f , -32.0f }), 0xC00000003F800000ULL , 0x41000000c0800000ULL , 0x41800000C1800000ULL , 0xC200000042000000ULL ));
178183
179184__m256 test_mm256_castps128_ps256 (__m128 A ) {
180185 // CHECK-LABEL: test_mm256_castps128_ps256
@@ -188,6 +193,7 @@ __m128 test_mm256_castps256_ps128(__m256 A) {
188193 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
189194 return _mm256_castps256_ps128 (A );
190195}
196+ TEST_CONSTEXPR (match_m128 (_mm256_castps256_ps128 ((__m256 ){1.0f , -2.0f , -4.0f , 8.0f , -16.0f , +16.0f , +32.0f , -32.0f }), 1.0f , -2.0f , -4.0f , 8.0f ));
191197
192198__m256i test_mm256_castsi128_si256 (__m128i A ) {
193199 // CHECK-LABEL: test_mm256_castsi128_si256
@@ -200,17 +206,20 @@ __m256d test_mm256_castsi256_pd(__m256i A) {
200206 // CHECK-LABEL: test_mm256_castsi256_pd
201207 return _mm256_castsi256_pd (A );
202208}
209+ TEST_CONSTEXPR (match_m256d (_mm256_castsi256_pd ((__m256i )(__v4du ){0x4070000000000000ULL , 0xC000000000000000ULL , 0xBFF0000000000000ULL , 0xC008000000000000ULL }), 256.0 , -2.0 , -1.0 , -3.0 ));
203210
204211__m256 test_mm256_castsi256_ps (__m256i A ) {
205212 // CHECK-LABEL: test_mm256_castsi256_ps
206213 return _mm256_castsi256_ps (A );
207214}
215+ TEST_CONSTEXPR (match_m256 (_mm256_castsi256_ps ((__m256i )(__v4du ){0x42000000c1800000ULL , 0x43000000c2800000ULL , 0x41000000c0800000ULL , 0xC00000003F800000ULL }), -16.0f , 32.0f , -64.0f , 128.0f , -4.0f , 8.0f , 1.0f , -2.0f ));
208216
209217__m128i test_mm256_castsi256_si128 (__m256i A ) {
210218 // CHECK-LABEL: test_mm256_castsi256_si128
211219 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <2 x i32> <i32 0, i32 1>
212220 return _mm256_castsi256_si128 (A );
213221}
222+ TEST_CONSTEXPR (match_m128i (_mm256_castsi256_si128 ((__m256i )(__v4du ){0xBFF0000000000000ULL , 0x4070000000000000ULL , 0xC000000000000000ULL , 0xC008000000000000ULL }), 0xBFF0000000000000ULL , 0x4070000000000000ULL ));
214223
215224__m256d test_mm256_ceil_pd (__m256d x ) {
216225 // CHECK-LABEL: test_mm256_ceil_pd
0 commit comments