[PATCH] D44550: [InstCombine] canonicalize fcmp+select to fabs

Mikhail Dvoretckii via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 16 06:12:45 PDT 2018


mike.dvoretsky added inline comments.


================
Comment at: lib/Transforms/InstCombine/InstCombineSelect.cpp:1577
+    FCmpInst::Predicate Pred = FCI->getPredicate();
+    if (match(FCI->getOperand(1), m_AnyZeroFP())) {
+      // (X <= +/-0.0) ? (0.0 - X) : X --> fabs(X)
----------------
I think there should be an nnan check here. The patterns in DAGCombiner check it implicitly by requiring condition codes that only occur in FP math under nnan, but this code currently doesn't require that, and all of the patterns would direct NaNs of either sign to the same option, creating the same kind of issue as the current patterns have with zero signs (and 0.0 - NaN shouldn't even do anything).


https://reviews.llvm.org/D44550





More information about the llvm-commits mailing list