[PATCH] D141075: [SelectionDAG] Implicitly truncate known bits in SPLAT_VECTOR
Luke Lau via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 6 02:24:25 PST 2023
luke updated this revision to Diff 486784.
luke added a comment.
Address feedback
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141075/new/
https://reviews.llvm.org/D141075
Files:
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
===================================================================
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -2977,17 +2977,11 @@
Depth + 1);
case ISD::SPLAT_VECTOR: {
SDValue SrcOp = Op.getOperand(0);
- if (SrcOp.getValueSizeInBits() != BitWidth) {
- assert(SrcOp.getValueSizeInBits() > BitWidth &&
- "Expected SPLAT_VECTOR implicit truncation");
- // FIXME: We should be able to truncate the known bits here to match
- // the official semantics of SPLAT_VECTOR, but doing so exposes a
- // Hexagon target bug which results in an infinite loop during
- // DAGCombine. (See D137140 for repo). Once that's fixed, we can
- // strengthen this.
- break;
- }
- Known = computeKnownBits(SrcOp, Depth + 1);
+ assert(SrcOp.getValueSizeInBits() >= BitWidth &&
+ "Expected SPLAT_VECTOR implicit truncation");
+ // Implicitly truncate the bits to match the official semantics of
+ // SPLAT_VECTOR.
+ Known = computeKnownBits(SrcOp, Depth + 1).trunc(BitWidth);
break;
}
case ISD::BUILD_VECTOR:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D141075.486784.patch
Type: text/x-patch
Size: 1228 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230106/eab0c199/attachment.bin>
More information about the llvm-commits
mailing list