@@ -100,7 +100,7 @@ test_mm256_broadcast_ss(float const *__a) {
100
100
101
101
// Make sure we have the correct mask for each insertf128 case.
102
102
103
- __m256d test_mm256_insertf128_ps_0 (__m256 a , __m128 b ) {
103
+ __m256 test_mm256_insertf128_ps_0 (__m256 a , __m128 b ) {
104
104
// CHECK-LABEL: @test_mm256_insertf128_ps_0
105
105
// CHECK: shufflevector{{.*}}<i32 8, i32 9, i32 10, i32 11, i32 4, i32 5, i32 6, i32 7>
106
106
return _mm256_insertf128_ps (a , b , 0 );
@@ -112,13 +112,13 @@ __m256d test_mm256_insertf128_pd_0(__m256d a, __m128d b) {
112
112
return _mm256_insertf128_pd (a , b , 0 );
113
113
}
114
114
115
- __m256d test_mm256_insertf128_si256_0 (__m256i a , __m128i b ) {
115
+ __m256i test_mm256_insertf128_si256_0 (__m256i a , __m128i b ) {
116
116
// CHECK-LABEL: @test_mm256_insertf128_si256_0
117
117
// CHECK: shufflevector{{.*}}<i32 4, i32 5, i32 2, i32 3>
118
118
return _mm256_insertf128_si256 (a , b , 0 );
119
119
}
120
120
121
- __m256d test_mm256_insertf128_ps_1 (__m256 a , __m128 b ) {
121
+ __m256 test_mm256_insertf128_ps_1 (__m256 a , __m128 b ) {
122
122
// CHECK-LABEL: @test_mm256_insertf128_ps_1
123
123
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
124
124
return _mm256_insertf128_ps (a , b , 1 );
@@ -130,9 +130,47 @@ __m256d test_mm256_insertf128_pd_1(__m256d a, __m128d b) {
130
130
return _mm256_insertf128_pd (a , b , 1 );
131
131
}
132
132
133
- __m256d test_mm256_insertf128_si256_1 (__m256i a , __m128i b ) {
133
+ __m256i test_mm256_insertf128_si256_1 (__m256i a , __m128i b ) {
134
134
// CHECK-LABEL: @test_mm256_insertf128_si256_1
135
135
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 4, i32 5>
136
136
return _mm256_insertf128_si256 (a , b , 1 );
137
137
}
138
138
139
+ // Make sure we have the correct mask for each extractf128 case.
140
+
141
+ __m128 test_mm256_extractf128_ps_0 (__m256 a ) {
142
+ // CHECK-LABEL: @test_mm256_extractf128_ps_0
143
+ // CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3>
144
+ return _mm256_extractf128_ps (a , 0 );
145
+ }
146
+
147
+ __m128d test_mm256_extractf128_pd_0 (__m256d a ) {
148
+ // CHECK-LABEL: @test_mm256_extractf128_pd_0
149
+ // CHECK: shufflevector{{.*}}<i32 0, i32 1>
150
+ return _mm256_extractf128_pd (a , 0 );
151
+ }
152
+
153
+ __m128i test_mm256_extractf128_si256_0 (__m256i a ) {
154
+ // CHECK-LABEL: @test_mm256_extractf128_si256_0
155
+ // CHECK: shufflevector{{.*}}<i32 0, i32 1>
156
+ return _mm256_extractf128_si256 (a , 0 );
157
+ }
158
+
159
+ __m128 test_mm256_extractf128_ps_1 (__m256 a ) {
160
+ // CHECK-LABEL: @test_mm256_extractf128_ps_1
161
+ // CHECK: shufflevector{{.*}}<i32 4, i32 5, i32 6, i32 7>
162
+ return _mm256_extractf128_ps (a , 1 );
163
+ }
164
+
165
+ __m128d test_mm256_extractf128_pd_1 (__m256d a ) {
166
+ // CHECK-LABEL: @test_mm256_extractf128_pd_1
167
+ // CHECK: shufflevector{{.*}}<i32 2, i32 3>
168
+ return _mm256_extractf128_pd (a , 1 );
169
+ }
170
+
171
+ __m128i test_mm256_extractf128_si256_1 (__m256i a ) {
172
+ // CHECK-LABEL: @test_mm256_extractf128_si256_1
173
+ // CHECK: shufflevector{{.*}}<i32 2, i32 3>
174
+ return _mm256_extractf128_si256 (a , 1 );
175
+ }
176
+
0 commit comments