[llvm] [AMDGPU] Fix fmed3 constant-fold sign-of-zero miscompile (PR #201896)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 8 06:22:39 PDT 2026
================
@@ -54,14 +54,14 @@ static APFloat fmed3AMDGCN(const APFloat &Src0, const APFloat &Src1,
const APFloat &Src2) {
APFloat Max3 = maxnum(maxnum(Src0, Src1), Src2);
- APFloat::cmpResult Cmp0 = Max3.compare(Src0);
- assert(Cmp0 != APFloat::cmpUnordered && "nans handled separately");
- if (Cmp0 == APFloat::cmpEqual)
+ assert(Max3.compare(Src0) != APFloat::cmpUnordered &&
----------------
jayfoad wrote:
It's a bit strange to call `compare` just to detect nans. Instead, maybe have a single `assert(!Src0.isNaN() && !Src1.isNaN() && !Src2.isNaN())` at the start of this function.
https://github.com/llvm/llvm-project/pull/201896
More information about the llvm-commits
mailing list