[PATCH] D108049: [InstCombine] Extend canonicalizeClampLike to handle truncated inputs
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 15 07:19:25 PDT 2021
lebedev.ri added inline comments.
================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp:1427
+ Value *MaybeReplacedLow = Builder.CreateSelect(
+ ShouldReplaceLow, Builder.CreateSExt(ReplacementLow, X->getType()), X);
+
----------------
We didn't need `sext` originally. Why do we always need one now? Should this use `CreateSExtOrBitCast()`?
================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp:1431-1438
+ if (X->getType() == Sel0.getType())
+ return SelectInst::Create(ShouldReplaceHigh, ReplacementHigh,
+ MaybeReplacedLow);
+
+ Value *MaybeReplacedHigh = Builder.CreateSelect(
+ ShouldReplaceHigh, Builder.CreateSExt(ReplacementHigh, X->getType()),
+ MaybeReplacedLow);
----------------
I would recommend something along the lines of using `CreateSExtOrBitCast()`,
only calling `CreateSelect` in a single place, and returning through `CreateTruncOrBitCast()`.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D108049/new/
https://reviews.llvm.org/D108049
More information about the llvm-commits
mailing list