================
@@ -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:
----------------
nvjle wrote:
Nit: perhaps instead of describing the new intrinsics in terms of the old
ones-- which future readers will probably not know or care about anyway-- just
directly describe in terms of the new intrinsics:
```
// For FP intrinsics (llvm.fadd, llvm.fsub, etc.) with fp.control
// and/or fp.except operand bundles, the CSE rules are as follows:
...
```
https://github.com/llvm/llvm-project/pull/191613
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits