diff options
author | Matthias Kretz <m.kretz@gsi.de> | 2023-05-25 12:53:06 +0200 |
---|---|---|
committer | Matthias Kretz <m.kretz@gsi.de> | 2023-05-30 16:19:07 +0200 |
commit | 3e2689e568425f14d6728504ad6f5d32b90320ad (patch) | |
tree | 7fd812cae0db919709fa96c9d8599c80c4584378 | |
parent | 291549d43e823f163fa9961e42a751b5ce0d57fb (diff) | |
download | gcc-3e2689e568425f14d6728504ad6f5d32b90320ad.zip gcc-3e2689e568425f14d6728504ad6f5d32b90320ad.tar.gz gcc-3e2689e568425f14d6728504ad6f5d32b90320ad.tar.bz2 |
libstdc++: Simplify calculation of expected value in simd test
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.
-rw-r--r-- | libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc b/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc index 7a2bc08..08ad49c 100644 --- a/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc +++ b/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc @@ -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; |