[llvm] SelectionDAG: Support nofpclass (PR #108350)

YunQiang Su via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 12 06:49:38 PDT 2024


================
@@ -11773,6 +11773,14 @@ void SelectionDAGISel::LowerArguments(const Function &F) {
           AssertOp = ISD::AssertSext;
         else if (Arg.hasAttribute(Attribute::ZExt))
           AssertOp = ISD::AssertZext;
+        if (Arg.hasAttribute(Attribute::NoFPClass)) {
+          SDNodeFlags InValFlags = InVals[i]->getFlags();
+          InValFlags.setNonNeg(Arg.getNoFPClass() & llvm::fcNegative);
+          InValFlags.setNoNaNs(Arg.getNoFPClass() & llvm::fcNan);
+          InValFlags.setNoInfs(Arg.getNoFPClass() & llvm::fcInf);
+          InValFlags.setNoSignedZeros(Arg.getNoFPClass() & llvm::fcNegZero);
----------------
wzssyqa wrote:

Maybe I am wrong.  In https://llvm.org/docs/LangRef.html, there is something about `nofpclass`.
It supports `nzero` and `pzero`. Maybe I misunderstand them.

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


More information about the llvm-commits mailing list