Skip to content

Commit 508a545

Browse files
committed
x86 avx: use memcpy instead of HEDLEY_REINTERPRET_CAST
1 parent 0f57a54 commit 508a545

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

simde/simde-math.h

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1915,14 +1915,7 @@ simde_math_adds_u32(uint32_t a, uint32_t b) {
19151915
return vqadds_u32(a, b);
19161916
#else
19171917
uint32_t r = a + b;
1918-
#if HEDLEY_HAS_WARNING("-Wsign-conversion")
1919-
HEDLEY_DIAGNOSTIC_PUSH
1920-
#pragma clang diagnostic ignored "-Wsign-conversion"
1921-
r |= -(r < a);
1922-
HEDLEY_DIAGNOSTIC_POP
1923-
#else
1924-
r |= -(r < a);
1925-
#endif
1918+
r |= -(r < a);
19261919
return r;
19271920
#endif
19281921
}

simde/x86/avx.h

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,9 @@ simde_mm256_castps_pd (simde__m256 a) {
392392
#elif defined(SIMDE_LOONGARCH_LASX_NATIVE)
393393
return (simde__m256d)a;
394394
#else
395-
return *HEDLEY_REINTERPRET_CAST(simde__m256d*, &a);
395+
simde__m256d r;
396+
simde_memcpy(&r, &a, sizeof(r));
397+
return r;
396398
#endif
397399
}
398400
#if defined(SIMDE_X86_AVX_ENABLE_NATIVE_ALIASES)
@@ -408,7 +410,9 @@ simde_mm256_castps_si256 (simde__m256 a) {
408410
#elif defined(SIMDE_LOONGARCH_LASX_NATIVE)
409411
return (simde__m256i)a;
410412
#else
411-
return *HEDLEY_REINTERPRET_CAST(simde__m256i*, &a);
413+
simde__m256i r;
414+
simde_memcpy(&r, &a, sizeof(r));
415+
return r;
412416
#endif
413417
}
414418
#if defined(SIMDE_X86_AVX_ENABLE_NATIVE_ALIASES)
@@ -424,7 +428,9 @@ simde_mm256_castsi256_pd (simde__m256i a) {
424428
#elif defined(SIMDE_LOONGARCH_LASX_NATIVE)
425429
return (simde__m256d)a;
426430
#else
427-
return *HEDLEY_REINTERPRET_CAST(simde__m256d*, &a);
431+
simde__m256d r;
432+
simde_memcpy(&r, &a, sizeof(r));
433+
return r;
428434
#endif
429435
}
430436
#if defined(SIMDE_X86_AVX_ENABLE_NATIVE_ALIASES)
@@ -440,7 +446,9 @@ simde_mm256_castsi256_ps (simde__m256i a) {
440446
#elif defined(SIMDE_LOONGARCH_LASX_NATIVE)
441447
return (simde__m256)a;
442448
#else
443-
return *HEDLEY_REINTERPRET_CAST(simde__m256*, &a);
449+
simde__m256 r;
450+
simde_memcpy(&r, &a, sizeof(r));
451+
return r;
444452
#endif
445453
}
446454
#if defined(SIMDE_X86_AVX_ENABLE_NATIVE_ALIASES)
@@ -456,7 +464,9 @@ simde_mm256_castpd_ps (simde__m256d a) {
456464
#elif defined(SIMDE_LOONGARCH_LASX_NATIVE)
457465
return (simde__m256)a;
458466
#else
459-
return *HEDLEY_REINTERPRET_CAST(simde__m256*, &a);
467+
simde__m256 r;
468+
simde_memcpy(&r, &a, sizeof(r));
469+
return r;
460470
#endif
461471
}
462472
#if defined(SIMDE_X86_AVX_ENABLE_NATIVE_ALIASES)
@@ -472,7 +482,9 @@ simde_mm256_castpd_si256 (simde__m256d a) {
472482
#elif defined(SIMDE_LOONGARCH_LASX_NATIVE)
473483
return (simde__m256i)a;
474484
#else
475-
return *HEDLEY_REINTERPRET_CAST(simde__m256i*, &a);
485+
simde__m256i r;
486+
simde_memcpy(&r, &a, sizeof(r));
487+
return r;
476488
#endif
477489
}
478490
#if defined(SIMDE_X86_AVX_ENABLE_NATIVE_ALIASES)

0 commit comments

Comments
 (0)