[llvm-branch-commits] [llvm] InstCombine: Handle nsz in copysign SimplifyDemandedFPClass (PR #176916)

Yingwei Zheng via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue Jan 20 07:50:41 PST 2026


================
@@ -2081,6 +2081,32 @@ static Value *simplifyDemandedFPClassFnegFabs(KnownFPClass &Known, Value *Src,
   return nullptr;
 }
 
+static Value *simplifyDemandedFPClassCopysignMag(Value *MagSrc,
+                                                 FPClassTest DemandedMask,
+                                                 KnownFPClass KnownSrc,
+                                                 bool NSZ) {
+  if (NSZ) {
+    constexpr FPClassTest NegOrZero = fcNegative | fcPosZero;
+    constexpr FPClassTest PosOrZero = fcPositive | fcNegZero;
+
+    if ((DemandedMask & ~NegOrZero) == fcNone &&
+        KnownSrc.isKnownNever(KnownFPClass::OrderedGreaterThanZeroMask | fcNan))
----------------
dtcxzyw wrote:

```suggestion
        KnownSrc.isKnownAlways(NegOrZero))
```

https://github.com/llvm/llvm-project/pull/176916


More information about the llvm-branch-commits mailing list