[llvm] [FunctionAttrs] Don't infer noundef when return has nofpclass (PR #191822)

Yingwei Zheng via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 14 10:05:31 PDT 2026


================
@@ -1742,6 +1743,11 @@ static void addNoUndefAttrs(const SCCNodeSet &SCCNodes,
                 !Attr.getRange().contains(
                     computeConstantRange(RetVal, /*ForSigned=*/false)))
               return false;
+
+            FPClassTest AttrFPClass = Attrs.getRetNoFPClass();
+            KnownFPClass ComputedFPClass = computeKnownFPClass(RetVal, DL);
+            if (!ComputedFPClass.isKnownNever(AttrFPClass))
+              return false;
----------------
dtcxzyw wrote:

```suggestion
            if (AttrFPClass != fcNone) {
              KnownFPClass ComputedFPClass = computeKnownFPClass(RetVal, DL);
              if (!ComputedFPClass.isKnownNever(AttrFPClass))
                return false;
            }
```
RetVal may not be a nofpclass-compatible value.


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


More information about the llvm-commits mailing list