Skip to content

Commit b91a9f8

Browse files
MSVC doesn't provide overload of operator+ fr vector type
1 parent eb41980 commit b91a9f8

File tree

4 files changed

+11
-11
lines changed

4 files changed

+11
-11
lines changed

include/xsimd/types/xsimd_avx512_double.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ namespace xsimd
490490
{
491491
__m256d tmp1 = _mm512_extractf64x4_pd(rhs, 1);
492492
__m256d tmp2 = _mm512_extractf64x4_pd(rhs, 0);
493-
__m256d res1 = tmp1 + tmp2;
493+
__m256d res1 = _mm256_add_pd(tmp1, tmp2);
494494
return xsimd::hadd(batch<double, 4>(res1));
495495
}
496496

@@ -501,7 +501,7 @@ namespace xsimd
501501
{ \
502502
auto tmp1 = _mm512_shuffle_f64x2(a, b, _MM_SHUFFLE(1, 0, 1, 0)); \
503503
auto tmp2 = _mm512_shuffle_f64x2(a, b, _MM_SHUFFLE(3, 2, 3, 2)); \
504-
res ## I = (tmp1 + tmp2); \
504+
res ## I = _mm512_add_pd(tmp1, tmp2); \
505505
} \
506506

507507
step1(1, row[0], row[2]);
@@ -514,12 +514,12 @@ namespace xsimd
514514
batch<double, 8> tmp5 = _mm512_shuffle_f64x2(res1, res2, _MM_SHUFFLE(2, 0, 2, 0));
515515
batch<double, 8> tmp6 = _mm512_shuffle_f64x2(res1, res2, _MM_SHUFFLE(3, 1, 3, 1));
516516

517-
batch<double, 8> resx1 = (tmp5 + tmp6);
517+
batch<double, 8> resx1 = _mm512_add_pd(tmp5, tmp6);
518518

519519
batch<double, 8> tmp7 = _mm512_shuffle_f64x2(res3, res4, _MM_SHUFFLE(2, 0, 2, 0));
520520
batch<double, 8> tmp8 = _mm512_shuffle_f64x2(res3, res4, _MM_SHUFFLE(3, 1, 3, 1));
521521

522-
batch<double, 8> resx2 = (tmp7 + tmp8);
522+
batch<double, 8> resx2 = _mm512_add_pd(tmp7, tmp8);
523523

524524
batch<double, 8> tmpx = _mm512_shuffle_pd(resx1, resx2, 0b00000000);
525525
batch<double, 8> tmpy = _mm512_shuffle_pd(resx1, resx2, 0b11111111);

include/xsimd/types/xsimd_avx512_float.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ namespace xsimd
513513
{
514514
__m256 tmp1 = _mm512_extractf32x8_ps(rhs, 1);
515515
__m256 tmp2 = _mm512_extractf32x8_ps(rhs, 0);
516-
__m256 res1 = tmp1 + tmp2;
516+
__m256 res1 = _mm256_add_ps(tmp1, tmp2);
517517
return xsimd::hadd(batch<float, 8>(res1));
518518
}
519519

@@ -527,7 +527,7 @@ namespace xsimd
527527
{ \
528528
auto tmp1 = _mm512_shuffle_f32x4(a, b, _MM_SHUFFLE(1, 0, 1, 0)); \
529529
auto tmp2 = _mm512_shuffle_f32x4(a, b, _MM_SHUFFLE(3, 2, 3, 2)); \
530-
res ## I = tmp1 + tmp2; \
530+
res ## I = _mm512_add_ps(tmp1, tmp2); \
531531
} \
532532

533533
XSIMD_AVX512_HADDP_STEP1(0, row[0], row[2]);
@@ -551,17 +551,17 @@ namespace xsimd
551551
batch<float, 16> tmp1 = _mm512_shuffle_f32x4(a, b, _MM_SHUFFLE(2, 0, 2, 0)); \
552552
batch<float, 16> tmp2 = _mm512_shuffle_f32x4(a, b, _MM_SHUFFLE(3, 1, 3, 1)); \
553553
\
554-
batch<float, 16> resx1 = tmp1 + tmp2; \
554+
batch<float, 16> resx1 = _mm512_add_ps(tmp1, tmp2); \
555555
\
556556
batch<float, 16> tmp3 = _mm512_shuffle_f32x4(c, d, _MM_SHUFFLE(2, 0, 2, 0)); \
557557
batch<float, 16> tmp4 = _mm512_shuffle_f32x4(c, d, _MM_SHUFFLE(3, 1, 3, 1)); \
558558
\
559-
batch<float, 16> resx2 = tmp3 + tmp4; \
559+
batch<float, 16> resx2 = _mm512_add_ps(tmp3, tmp4); \
560560
\
561561
batch<float, 16> tmp5 = _mm512_shuffle_ps(resx1, resx2, _MM_SHUFFLE(2, 0, 2, 0)); \
562562
batch<float, 16> tmp6 = _mm512_shuffle_ps(resx1, resx2, _MM_SHUFFLE(3, 1, 3, 1)); \
563563
\
564-
batch<float, 16> resx3 = tmp5 + tmp6; \
564+
batch<float, 16> resx3 = _mm512_add_ps(tmp5, tmp6); \
565565
\
566566
halfx ## I = _mm256_hadd_ps(_mm512_extractf32x8_ps(resx3, 0), \
567567
_mm512_extractf32x8_ps(resx3, 1)); \

include/xsimd/types/xsimd_avx512_int32.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ namespace xsimd
236236
// TODO Why not _mm512_reduce_add_...?
237237
__m256i tmp1 = _mm512_extracti32x8_epi32(rhs, 0);
238238
__m256i tmp2 = _mm512_extracti32x8_epi32(rhs, 1);
239-
__m256i res1 = tmp1 + tmp2;
239+
__m256i res1 = _mm256_add_epi32(tmp1, tmp2);
240240
return xsimd::hadd(batch<int32_t, 8>(res1));
241241
}
242242

include/xsimd/types/xsimd_avx512_int64.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ namespace xsimd
293293
{
294294
__m256i tmp1 = _mm512_extracti32x8_epi32(rhs, 0);
295295
__m256i tmp2 = _mm512_extracti32x8_epi32(rhs, 1);
296-
__m256i res1 = tmp1 + tmp2;
296+
__m256i res1 = _mm256_add_epi64(tmp1, tmp2);
297297
return xsimd::hadd(batch<int64_t, 4>(res1));
298298
}
299299

0 commit comments

Comments
 (0)