]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Simplify calculation of expected value in simd test
authorMatthias Kretz <m.kretz@gsi.de>
Thu, 25 May 2023 10:53:06 +0000 (12:53 +0200)
committerMatthias Kretz <m.kretz@gsi.de>
Tue, 30 May 2023 20:05:54 +0000 (22:05 +0200)
This avoids a failure on PR109964.

Signed-off-by: Matthias Kretz <m.kretz@gsi.de>
libstdc++-v3/ChangeLog:

* testsuite/experimental/simd/tests/integer_operators.cc:
Compute expected value differently to avoid getting turned into
a vector shift.

(cherry picked from commit 3e2689e568425f14d6728504ad6f5d32b90320ad)

libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc

index 7416952ad4235f1839681a220efa03b3068d5b4d..7a456b9f3bf5e82e1e9ef1a82e7e7096f329ab42 100644 (file)
@@ -180,11 +180,10 @@ template <typename V>
          for (int j = 0; j < 100; ++j)
            {
              const V seq([&](auto i) -> T { return (j + i) % n_promo_bits; });
-             COMPARE(V(1) >> seq, V([&](auto i) { return T(T(1) >> seq[i]); }))
-               << "seq = " << seq;
-             COMPARE(make_value_unknown(V(1)) >> make_value_unknown(seq),
-               V([&](auto i) { return T(T(1) >> seq[i]); }))
-               << "seq = " << seq;
+             const V expect([&](auto i) { return seq[i] == 0 ? T(1) : T(0); });
+             COMPARE(V(1) >> seq, expect) << "\nseq = " << seq;
+             COMPARE(make_value_unknown(V(1)) >> make_value_unknown(seq), expect)
+               << "\nseq = " << seq;
            }
          for_constexpr<int, 0, n_promo_bits - 1>([](auto shift_ic) {
            constexpr int shift = shift_ic;