avx: fix simde_mm256_undefined_* on older GCC and clang
@@ -2867,7 +2867,10 @@ simde__m256
simde_mm256_undefined_ps (void) {
simde__m256 r;
-#if defined(SIMDE_AVX_NATIVE)
+#if \
+ defined(SIMDE_AVX_NATIVE) && \
+ (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(5,0,0)) && \
+ (!defined(__has_builtin) || HEDLEY_HAS_BUILTIN(__builtin_ia32_undef256))
r.n = _mm256_undefined_ps();
#elif !defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_)
r = simde_mm256_setzero_ps();
@@ -2881,7 +2884,10 @@ simde__m256d
simde_mm256_undefined_pd (void) {
simde__m256d r;
-#if defined(SIMDE_AVX_NATIVE)
+#if \
+ defined(SIMDE_AVX_NATIVE) && \
+ (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(5,0,0)) && \
+ (!defined(__has_builtin) || HEDLEY_HAS_BUILTIN(__builtin_ia32_undef256))
r.n = _mm256_undefined_pd();
#elif !defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_)
r = simde_mm256_setzero_pd();
@@ -2894,8 +2900,10 @@ SIMDE__FUNCTION_ATTRIBUTES
simde__m256i
simde_mm256_undefined_si256 (void) {
simde__m256i r;
-
-#if defined(SIMDE_AVX_NATIVE)
+#if \
+ defined(SIMDE_AVX_NATIVE) && \
+ (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(5,0,0)) && \
+ (!defined(__has_builtin) || HEDLEY_HAS_BUILTIN(__builtin_ia32_undef256))
r.n = _mm256_undefined_si256();
#elif !defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_)
r = simde_mm256_setzero_si256();
