[llvm] [GISel] Fix ShuffleVector assert (PR #139769)
Shilei Tian via llvm-commits
llvm-commits at lists.llvm.org
Tue May 20 16:24:42 PDT 2025
================
@@ -420,8 +420,12 @@ void CombinerHelper::applyCombineShuffleToBuildVector(MachineInstr &MI) const {
else
Extracts.push_back(Unmerge2.getReg(Val - Width));
}
-
- Builder.buildBuildVector(MI.getOperand(0).getReg(), Extracts);
+ assert(Extracts.size() > 0 && "Expected at least one element in the shuffle");
+ if (Extracts.size() == 1) {
+ Builder.buildCopy(MI.getOperand(0).getReg(), Extracts[0]);
+ } else {
+ Builder.buildBuildVector(MI.getOperand(0).getReg(), Extracts);
+ }
----------------
shiltian wrote:
```suggestion
if (Extracts.size() == 1)
Builder.buildCopy(MI.getOperand(0).getReg(), Extracts[0]);
else
Builder.buildBuildVector(MI.getOperand(0).getReg(), Extracts);
```
https://github.com/llvm/llvm-project/pull/139769
More information about the llvm-commits
mailing list