]> 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 14:19:07 +0000 (16:19 +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.

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

index 7a2bc085e498b04edeae86e16817d28f66cf1bb8..08ad49ca710800170e7efc41145afab0b5ec1422 100644 (file)
@@ -179,11 +179,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;