[llvm-branch-commits] [llvm] ValueTracking: Special case fmul by llvm.amdgcn.trig.preop (PR #183373)

Jay Foad via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Feb 26 03:50:29 PST 2026


================
@@ -5573,37 +5579,44 @@ void computeKnownFPClass(const Value *V, const APInt &DemandedElts,
                 Op->getType()->getScalarType()->getFltSemantics())
           : DenormalMode::getDynamic();
 
+    Value *LHS = Op->getOperand(0);
+    Value *RHS = Op->getOperand(1);
     // X * X is always non-negative or a NaN.
     // FIXME: Should check isGuaranteedNotToBeUndef
-    if (Op->getOperand(0) == Op->getOperand(1)) {
+    if (LHS == RHS) {
       KnownFPClass KnownSrc;
-      computeKnownFPClass(Op->getOperand(0), DemandedElts, fcAllFlags, KnownSrc,
-                          Q, Depth + 1);
+      computeKnownFPClass(LHS, DemandedElts, fcAllFlags, KnownSrc, Q,
+                          Depth + 1);
       Known = KnownFPClass::square(KnownSrc, Mode);
       break;
     }
 
+    KnownFPClass KnownLHS, KnownRHS;
+
     const APFloat *CRHS;
-    if (match(Op->getOperand(1), m_APFloat(CRHS))) {
-      KnownFPClass KnownLHS;
+    if (match(RHS, m_APFloat(CRHS))) {
       computeKnownFPClass(Op->getOperand(0), DemandedElts, fcAllFlags, KnownLHS,
----------------
jayfoad wrote:

Pull this out of the `if`? Also:
```suggestion
      computeKnownFPClass(LHS, DemandedElts, fcAllFlags, KnownLHS,
```

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


More information about the llvm-branch-commits mailing list