]> 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:04:42 +0000 (22:04 +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 40760059ca2acf96bd6436380026180520ca353c..4991b05264173af9c35ff95488c2bb9868f0c027 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;