@@ -14,6 +14,7 @@ typedef struct {
14
14
__m128d c ;
15
15
__m256 d ;
16
16
__m256d e ;
17
+ __m256d ep ;
17
18
__m128i f , g , h , o ;
18
19
#ifdef __AVX2__
19
20
__m256i i , j , k ;
@@ -48,6 +49,7 @@ void zero_init_all(void) {
48
49
__m256 b ;
49
50
__m128d c ;
50
51
__m128i d ;
52
+ __m256d ep ;
51
53
__m256d e ;
52
54
__m256i f ;
53
55
#ifdef MMX
@@ -65,6 +67,7 @@ ShuffleVectors call_all(void) {
65
67
__m256d e = _mm256_set_pd (1.1 , 2.2 , 3.3 , 4.4 );
66
68
__m128i f = _mm_set1_epi8 (123 );
67
69
__m256i g = _mm256_set_epi32 (14 , 18 , 22 , 33 , -11 , -3 , 8 , 300 );
70
+ __m256d h = _mm256_set_pd (5.5 , 6.6 , 7.7 , 8.8 );
68
71
69
72
ShuffleVectors sv = {
70
73
#ifdef MMX
@@ -76,6 +79,7 @@ ShuffleVectors call_all(void) {
76
79
_mm_shuffle_ps (a , a , _MM_SHUFFLE (3 , 2 , 1 , 0 )),
77
80
_mm_shuffle_pd (b , b , (1 << 1 | 1 << 0 )),
78
81
_mm256_shuffle_ps (d , d , _MM_SHUFFLE (1 , 2 , 2 , 1 )),
82
+ _mm256_permute2f128_pd (e , h , 0x31 ),
79
83
_mm256_shuffle_pd (e , e , (1 << 3 | 1 << 2 | 0 << 1 | 0 << 0 )),
80
84
_mm_shuffle_epi32 (f , _MM_SHUFFLE (1 , 0 , 0 , 1 )),
81
85
_mm_shufflehi_epi16 (f , _MM_SHUFFLE (0 , 1 , 2 , 3 )),
@@ -112,6 +116,7 @@ ShuffleVectors call_all_used(void) {
112
116
__m256d ee = _mm256_set_pd (4.4 , 3.3 , 2.2 , 1.1 );
113
117
__m128i ff = _mm_set1_epi8 (13 );
114
118
__m256i gg = _mm256_set_epi32 (-12 , 33 , 44 , 100 , -44 , 42 , -33 , -100 );
119
+ __m256d hh = _mm256_set_pd (5.5 , 6.6 , 7.7 , 8.8 );
115
120
116
121
#ifdef MMX
117
122
__m64 a ;
@@ -120,6 +125,7 @@ ShuffleVectors call_all_used(void) {
120
125
__m128d c ;
121
126
__m256 d ;
122
127
__m256d e ;
128
+ __m256d ep ;
123
129
__m128i f , g , h , o ;
124
130
__m256i i , j , k ;
125
131
#ifdef MMX
@@ -140,6 +146,7 @@ ShuffleVectors call_all_used(void) {
140
146
b = _mm_shuffle_ps (aa , aa , _MM_SHUFFLE (3 , 2 , 1 , 0 ));
141
147
c = _mm_shuffle_pd (bb , bb , (1 << 1 | 1 << 0 ));
142
148
d = _mm256_shuffle_ps (dd , dd , _MM_SHUFFLE (1 , 2 , 2 , 1 ));
149
+ ep = _mm256_permute2f128_pd (ee , hh , 0x31 ),
143
150
e = _mm256_shuffle_pd (ee , ee , (1 << 3 | 1 << 2 | 0 << 1 | 0 << 0 ));
144
151
f = _mm_shuffle_epi32 (ff , _MM_SHUFFLE (1 , 0 , 0 , 1 ));
145
152
g = _mm_shufflehi_epi16 (f , _MM_SHUFFLE (0 , 1 , 2 , 3 ));
@@ -167,7 +174,7 @@ ShuffleVectors call_all_used(void) {
167
174
#ifdef MMX
168
175
a ,
169
176
#endif
170
- b , c , d , e , f , g , h , o ,
177
+ b , c , d , e , ep , f , g , h , o ,
171
178
172
179
#ifdef __AVX2__
173
180
i , j , k ,
0 commit comments