diff options
author | Yingwei Zheng <dtcxzyw2333@gmail.com> | 2024-05-20 21:52:38 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-20 21:52:38 +0800 |
commit | 04ae6e600a3090ccc1f80d0110a1108aa73a54f8 (patch) | |
tree | 67341424cec4d0387b277cbf3c27fbe6f88c38b8 /llvm/unittests/Analysis/ValueTrackingTest.cpp | |
parent | 36899d693d91719e7e6cd0f0ee4cf579111b8509 (diff) | |
download | llvm-04ae6e600a3090ccc1f80d0110a1108aa73a54f8.zip llvm-04ae6e600a3090ccc1f80d0110a1108aa73a54f8.tar.gz llvm-04ae6e600a3090ccc1f80d0110a1108aa73a54f8.tar.bz2 |
[ValueTracking] Fix incorrect inferrence about the signbit of sqrt (#92510)
According to IEEE Std 754-2019, `sqrt` returns nan when the input is
negative (except for -0). In this case, we cannot make assumptions about
sign bit of the result.
Fixes https://github.com/llvm/llvm-project/issues/92217
Diffstat (limited to 'llvm/unittests/Analysis/ValueTrackingTest.cpp')
-rw-r--r-- | llvm/unittests/Analysis/ValueTrackingTest.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/unittests/Analysis/ValueTrackingTest.cpp b/llvm/unittests/Analysis/ValueTrackingTest.cpp index 8738af9..a30db46 100644 --- a/llvm/unittests/Analysis/ValueTrackingTest.cpp +++ b/llvm/unittests/Analysis/ValueTrackingTest.cpp @@ -2005,7 +2005,7 @@ TEST_F(ComputeKnownFPClassTest, SqrtNszSignBit) { computeKnownFPClass(A4, M->getDataLayout(), fcAllFlags, 0, nullptr, nullptr, nullptr, nullptr, /*UseInstrInfo=*/true); EXPECT_EQ(fcPositive | fcQNan, UseInstrInfoNSZNoNan.KnownFPClasses); - EXPECT_EQ(false, UseInstrInfoNSZNoNan.SignBit); + EXPECT_EQ(std::nullopt, UseInstrInfoNSZNoNan.SignBit); KnownFPClass NoUseInstrInfoNSZNoNan = computeKnownFPClass(A4, M->getDataLayout(), fcAllFlags, 0, nullptr, |