commit 18d850ea5eb0994c606cdc90a3ab2cb8204cfbb4
Author: Michael R. Crusoe <michael.crusoe@gmail.com>
Date:   Fri Jan 20 18:10:35 2023 +0100

    fix gcc 12 compilation

diff --git a/simde/arm/neon/ld2.h b/simde/arm/neon/ld2.h
index 7b1f88e5..ed8ce1a0 100644
--- a/simde/arm/neon/ld2.h
+++ b/simde/arm/neon/ld2.h
@@ -97,6 +97,10 @@ simde_vld2_s16(int16_t const ptr[HEDLEY_ARRAY_PARAM(8)]) {
     simde_memcpy(&r, &a_, sizeof(r));
     return r;
   #else
+    #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+      HEDLEY_DIAGNOSTIC_PUSH
+      SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_
+    #endif
     simde_int16x4_private r_[2];

     for (size_t i = 0 ; i < (sizeof(r_) / sizeof(r_[0])) ; i++) {
@@ -104,6 +108,9 @@ simde_vld2_s16(int16_t const ptr[HEDLEY_ARRAY_PARAM(8)]) {
         r_[i].values[j] = ptr[i + (j * (sizeof(r_) / sizeof(r_[0])))];
       }
     }
+    #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+      HEDLEY_DIAGNOSTIC_POP
+    #endif

     simde_int16x4x2_t r = { {
       simde_int16x4_from_private(r_[0]),
@@ -240,6 +247,10 @@ simde_vld2_u16(uint16_t const ptr[HEDLEY_ARRAY_PARAM(8)]) {
     simde_memcpy(&r, &a_, sizeof(r));
     return r;
   #else
+    #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+      HEDLEY_DIAGNOSTIC_PUSH
+      SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_
+    #endif
     simde_uint16x4_private r_[2];

     for (size_t i = 0 ; i < (sizeof(r_) / sizeof(r_[0])) ; i++) {
@@ -247,6 +258,9 @@ simde_vld2_u16(uint16_t const ptr[HEDLEY_ARRAY_PARAM(8)]) {
         r_[i].values[j] = ptr[i + (j * (sizeof(r_) / sizeof(r_[0])))];
       }
     }
+    #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+      HEDLEY_DIAGNOSTIC_POP
+    #endif

     simde_uint16x4x2_t r = { {
       simde_uint16x4_from_private(r_[0]),
@@ -438,6 +452,10 @@ simde_vld2q_s32(int32_t const ptr[HEDLEY_ARRAY_PARAM(8)]) {
         simde_vld1q_s32(&(ptr[4]))
       );
   #else
+    #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+      HEDLEY_DIAGNOSTIC_PUSH
+      SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_
+    #endif
     simde_int32x4_private r_[2];

     for (size_t i = 0 ; i < (sizeof(r_) / sizeof(r_[0])) ; i++) {
@@ -445,6 +463,9 @@ simde_vld2q_s32(int32_t const ptr[HEDLEY_ARRAY_PARAM(8)]) {
         r_[i].values[j] = ptr[i + (j * (sizeof(r_) / sizeof(r_[0])))];
       }
     }
+    #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+      HEDLEY_DIAGNOSTIC_POP
+    #endif

     simde_int32x4x2_t r = { {
       simde_int32x4_from_private(r_[0]),
@@ -597,6 +618,10 @@ simde_vld2q_u32(uint32_t const ptr[HEDLEY_ARRAY_PARAM(8)]) {
         simde_vld1q_u32(&(ptr[4]))
       );
   #else
+    #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+      HEDLEY_DIAGNOSTIC_PUSH
+      SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_
+    #endif
     simde_uint32x4_private r_[2];

     for (size_t i = 0 ; i < (sizeof(r_) / sizeof(r_[0])) ; i++) {
@@ -604,6 +629,9 @@ simde_vld2q_u32(uint32_t const ptr[HEDLEY_ARRAY_PARAM(8)]) {
         r_[i].values[j] = ptr[i + (j * (sizeof(r_) / sizeof(r_[0])))];
       }
     }
+    #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+      HEDLEY_DIAGNOSTIC_POP
+    #endif

     simde_uint32x4x2_t r = { {
       simde_uint32x4_from_private(r_[0]),
@@ -657,6 +685,10 @@ simde_vld2q_f32(simde_float32_t const ptr[HEDLEY_ARRAY_PARAM(8)]) {
         simde_vld1q_f32(&(ptr[4]))
       );
   #else
+    #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+      HEDLEY_DIAGNOSTIC_PUSH
+      SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_
+    #endif
     simde_float32x4_private r_[2];

     for (size_t i = 0 ; i < (sizeof(r_) / sizeof(r_[0])); i++) {
@@ -664,6 +696,9 @@ simde_vld2q_f32(simde_float32_t const ptr[HEDLEY_ARRAY_PARAM(8)]) {
         r_[i].values[j] = ptr[i + (j * (sizeof(r_) / sizeof(r_[0])))];
       }
     }
+    #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+      HEDLEY_DIAGNOSTIC_POP
+    #endif

     simde_float32x4x2_t r = { {
       simde_float32x4_from_private(r_[0]),
diff --git a/test/x86/avx2.c b/test/x86/avx2.c
index 7beff5b4..5632db9e 100644
--- a/test/x86/avx2.c
+++ b/test/x86/avx2.c
@@ -7155,11 +7155,18 @@ test_simde_mm_i32gather_pd (SIMDE_MUNIT_TEST_ARGS) {
   };
   for (size_t i = 0 ; i < (sizeof(f64gather_buffer) / sizeof(f64gather_buffer[0])) ; i++) { f64gather_buffer[i] = HEDLEY_STATIC_CAST(simde_float64, i); }

+  #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+    HEDLEY_DIAGNOSTIC_PUSH
+    SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_
+  #endif
   for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
     simde__m128i vindex = simde_x_mm_loadu_epi32(test_vec[i].vindex);
     simde__m128d r = simde_mm_i32gather_pd(f64gather_buffer, vindex, 8);
     simde_test_x86_assert_equal_f64x2(r, simde_mm_loadu_pd(test_vec[i].r), 1);
   }
+  #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+    HEDLEY_DIAGNOSTIC_POP
+  #endif

   return 0;
 }
@@ -7243,11 +7250,18 @@ test_simde_mm256_i32gather_pd (SIMDE_MUNIT_TEST_ARGS) {
   };
   for (size_t i = 0 ; i < (sizeof(f64gather_buffer) / sizeof(f64gather_buffer[0])) ; i++) { f64gather_buffer[i] = HEDLEY_STATIC_CAST(simde_float64, i); }

+  #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+    HEDLEY_DIAGNOSTIC_PUSH
+    SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_
+  #endif
   for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
     simde__m128i vindex = simde_x_mm_loadu_epi32(test_vec[i].vindex);
     simde__m256d r = simde_mm256_i32gather_pd(f64gather_buffer, vindex, 8);
     simde_test_x86_assert_equal_f64x4(r, simde_mm256_loadu_pd(test_vec[i].r), 1);
   }
+  #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) && HEDLEY_GCC_VERSION_CHECK(12,0,0)
+    HEDLEY_DIAGNOSTIC_POP
+  #endif

   return 0;
 }
