]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Resolve -Wunused-variable warnings in stdx::simd and tests
authorMatthias Kretz <m.kretz@gsi.de>
Mon, 22 May 2023 14:58:30 +0000 (16:58 +0200)
committerMatthias Kretz <m.kretz@gsi.de>
Thu, 25 May 2023 07:04:03 +0000 (09:04 +0200)
Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
libstdc++-v3/ChangeLog:

* include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
__infn into #ifdef'ed block.
* testsuite/experimental/simd/tests/fpclassify.cc: Declare
constants only when used.
* testsuite/experimental/simd/tests/frexp.cc: Likewise.
* testsuite/experimental/simd/tests/logarithm.cc: Likewise.
* testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
Likewise.
* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
Move totest and expect1 into #ifdef'ed block.

(cherry picked from commit a7129e82bed1bd4f513fc3c3f401721e2c96a865)

libstdc++-v3/include/experimental/bits/simd_builtin.h
libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc

index b1ae804bf910b6b9521bd857c5aaad4c93386a86..712b3599a99c32ba5a1daa47c83efd6525858135 100644 (file)
@@ -2356,12 +2356,12 @@ template <typename _Abi>
        constexpr size_t _NI = sizeof(__xn) / sizeof(_I);
        _GLIBCXX_SIMD_USE_CONSTEXPR auto __minn
          = __vector_bitcast<_I>(__vector_broadcast<_NI>(__norm_min_v<_Tp>));
-       _GLIBCXX_SIMD_USE_CONSTEXPR auto __infn
-         = __vector_bitcast<_I>(__vector_broadcast<_NI>(__infinity_v<_Tp>));
 
        _GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_normal
          = __vector_broadcast<_NI, _I>(FP_NORMAL);
 #if !__FINITE_MATH_ONLY__
+       _GLIBCXX_SIMD_USE_CONSTEXPR auto __infn
+         = __vector_bitcast<_I>(__vector_broadcast<_NI>(__infinity_v<_Tp>));
        _GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_nan
          = __vector_broadcast<_NI, _I>(FP_NAN);
        _GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_infinite
index fe8a06174b1b12788c535e178ed032a8d45dda19..30888c28c39afa2c382adbb0684448b74c3992bd 100644 (file)
@@ -40,9 +40,11 @@ template <typename V>
   {
     using T = typename V::value_type;
     using intv = std::experimental::fixed_size_simd<int, V::size()>;
+#if __GCC_IEC_559 >= 2
     constexpr T inf = std::__infinity_v<T>;
     constexpr T denorm_min = std::__infinity_v<T>;
     constexpr T nan = std::__quiet_NaN_v<T>;
+#endif
     constexpr T max = std::__finite_max_v<T>;
     constexpr T norm_min = std::__norm_min_v<T>;
     test_values<V>(
index 918182d222154bc7db824186d3fbd8dc53a859bd..0d895c4913ef21e96c398c2e0602f6a1ba009b3f 100644 (file)
@@ -27,11 +27,17 @@ template <typename V>
   {
     using int_v = std::experimental::fixed_size_simd<int, V::size()>;
     using T = typename V::value_type;
+#if __GCC_IEC_559 >= 2 || defined __STDC_IEC_559__
     constexpr auto denorm_min = std::__denorm_min_v<T>;
+#endif
+#if __GCC_IEC_559 >= 2
     constexpr auto norm_min = std::__norm_min_v<T>;
+#endif
     constexpr auto max = std::__finite_max_v<T>;
+#if defined __STDC_IEC_559__
     constexpr auto nan = std::__quiet_NaN_v<T>;
     constexpr auto inf = std::__infinity_v<T>;
+#endif
     test_values<V>(
       {0, 0.25, 0.5, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
        20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 31, -0., -0.25, -0.5, -1,
index e9719cc67febb1d1a32ad8035128f2aab2974269..3c4f0c80361222bef8ffe9068e7b08ed0da67cc4 100644 (file)
@@ -139,7 +139,6 @@ template <typename V>
        if (modf_is_broken)
          return;
        V integral = {};
-       const V totest = modf(input, &integral);
        auto&& expected = [&](const auto& v) -> std::pair<const V, const V> {
          std::pair<V, V> tmp = {};
          using std::modf;
@@ -151,8 +150,9 @@ template <typename V>
            }
          return tmp;
        };
-       const auto expect1 = expected(input);
 #ifdef __STDC_IEC_559__
+       const V totest = modf(input, &integral);
+       const auto expect1 = expected(input);
        COMPARE(isnan(totest), isnan(expect1.first))
          << "modf(" << input << ", iptr) = " << totest << " != " << expect1;
        COMPARE(isnan(integral), isnan(expect1.second))
index b0dc9af6c816337181ae0f02e326d29834d8a3f4..d2e52646a7d7cc8f3e334c4bed4c4bda93e1752d 100644 (file)
@@ -30,11 +30,13 @@ template <typename V>
     vir::test::setFuzzyness<double>(1);
 
     using T = typename V::value_type;
+#ifdef __STDC_IEC_559__
     constexpr T nan = std::__quiet_NaN_v<T>;
     constexpr T inf = std::__infinity_v<T>;
     constexpr T denorm_min = std::__denorm_min_v<T>;
-    constexpr T norm_min = std::__norm_min_v<T>;
     constexpr T min = std::__finite_min_v<T>;
+#endif
+    constexpr T norm_min = std::__norm_min_v<T>;
     constexpr T max = std::__finite_max_v<T>;
     test_values<V>({1,
                    2,
index 0687662fae6bfd8b6f19b880b3438a2e10ff7fe2..71ac01a3d99cdaa4043d86f5c4595db05926f28c 100644 (file)
@@ -25,8 +25,10 @@ template <typename V>
   test()
   {
     using T = typename V::value_type;
+#ifdef __STDC_IEC_559__
     constexpr T inf = std::__infinity_v<T>;
     constexpr T denorm_min = std::__denorm_min_v<T>;
+#endif
     constexpr T norm_min = std::__norm_min_v<T>;
     constexpr T max = std::__finite_max_v<T>;
     constexpr T min = std::__finite_min_v<T>;