@@ -136,18 +136,18 @@ struct ymm_vector<float> {
136
136
{
137
137
return _mm256_set1_ps (v);
138
138
}
139
- template <uint8_t mask>
139
+ template <uint8_t mask, bool = (mask == 0b01010101 ) >
140
140
static zmm_t shuffle (zmm_t zmm)
141
141
{
142
142
/* Hack!: have to make shuffles within 128-bit lanes work for both
143
143
* 32-bit and 64-bit */
144
- if constexpr (mask == 0b01010101 ) {
145
- return _mm256_shuffle_ps (zmm, zmm, 0b10110001 );
146
- }
147
- else {
148
- /* Not used, so far */
149
- return _mm256_shuffle_ps (zmm, zmm, mask);
150
- }
144
+ return _mm256_shuffle_ps (zmm, zmm, 0b10110001 );
145
+ // if constexpr (mask == 0b01010101) {
146
+ // }
147
+ // else {
148
+ // /* Not used, so far */
149
+ // return _mm256_shuffle_ps(zmm, zmm, mask);
150
+ // }
151
151
}
152
152
static void storeu (void *mem, zmm_t x)
153
153
{
@@ -271,18 +271,12 @@ struct ymm_vector<uint32_t> {
271
271
{
272
272
return _mm256_set1_epi32 (v);
273
273
}
274
- template <uint8_t mask>
274
+ template <uint8_t mask, bool = (mask == 0b01010101 ) >
275
275
static zmm_t shuffle (zmm_t zmm)
276
276
{
277
277
/* Hack!: have to make shuffles within 128-bit lanes work for both
278
278
* 32-bit and 64-bit */
279
- if constexpr (mask == 0b01010101 ) {
280
- return _mm256_shuffle_epi32 (zmm, 0b10110001 );
281
- }
282
- else {
283
- /* Not used, so far */
284
- return _mm256_shuffle_epi32 (zmm, mask);
285
- }
279
+ return _mm256_shuffle_epi32 (zmm, 0b10110001 );
286
280
}
287
281
static void storeu (void *mem, zmm_t x)
288
282
{
@@ -406,18 +400,12 @@ struct ymm_vector<int32_t> {
406
400
{
407
401
return _mm256_set1_epi32 (v);
408
402
}
409
- template <uint8_t mask>
403
+ template <uint8_t mask, bool = (mask == 0b01010101 ) >
410
404
static zmm_t shuffle (zmm_t zmm)
411
405
{
412
406
/* Hack!: have to make shuffles within 128-bit lanes work for both
413
407
* 32-bit and 64-bit */
414
- if constexpr (mask == 0b01010101 ) {
415
- return _mm256_shuffle_epi32 (zmm, 0b10110001 );
416
- }
417
- else {
418
- /* Not used, so far */
419
- return _mm256_shuffle_epi32 (zmm, mask);
420
- }
408
+ return _mm256_shuffle_epi32 (zmm, 0b10110001 );
421
409
}
422
410
static void storeu (void *mem, zmm_t x)
423
411
{
0 commit comments