================
@@ -109,28 +109,42 @@ struct SimpleValue {
     if (CallInst *CI = dyn_cast<CallInst>(Inst)) {
       if (Function *F = CI->getCalledFunction()) {
         switch (F->getIntrinsicID()) {
-        case Intrinsic::experimental_constrained_fadd:
-        case Intrinsic::experimental_constrained_fsub:
-        case Intrinsic::experimental_constrained_fmul:
-        case Intrinsic::experimental_constrained_fdiv:
-        case Intrinsic::experimental_constrained_frem:
-        case Intrinsic::experimental_constrained_fptosi:
-        case Intrinsic::experimental_constrained_sitofp:
-        case Intrinsic::experimental_constrained_fptoui:
-        case Intrinsic::experimental_constrained_uitofp:
-        case Intrinsic::experimental_constrained_fcmp:
-        case Intrinsic::experimental_constrained_fcmps: {
-          auto *CFP = cast<ConstrainedFPIntrinsic>(CI);
-          if (CFP->getExceptionBehavior() &&
-              CFP->getExceptionBehavior() == fp::ebStrict)
+        // New-form FP intrinsics (llvm.fadd, llvm.fsub, etc.) with fp.control
+        // and/or fp.except operand bundles follow the same CSE rules as their
+        // constrained predecessors:
+        //   - ebStrict or absent exception behavior → no CSE
+        //   - Dynamic or absent rounding mode → no CSE (unknown mode)
+        //   - Fixed non-strict EB + known RM → CSE allowed
----------------
nvjle wrote:

Micro-nit: I don't remember if there is a specific/explicit rule about this in 
the coding standards, but should the special arrow character be replaced by 
ASCII `->`? 

https://github.com/llvm/llvm-project/pull/191613
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to