Skip to content

Commit 8c51ac9

Browse files
[RISCV][GISEL] Legalize G_SELECT for scalable vectors
1 parent d179176 commit 8c51ac9

File tree

2 files changed

+405
-2
lines changed

2 files changed

+405
-2
lines changed

llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,11 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
231231
.clampScalar(1, sXLen, sXLen)
232232
.clampScalar(0, sXLen, sXLen);
233233

234-
auto &SelectActions = getActionDefinitionsBuilder(G_SELECT).legalFor(
235-
{{s32, sXLen}, {p0, sXLen}});
234+
auto &SelectActions =
235+
getActionDefinitionsBuilder(G_SELECT)
236+
.legalFor({{s32, sXLen}, {p0, sXLen}})
237+
.legalIf(all(typeIsLegalIntOrFPVec(0, IntOrFPVecTys, ST),
238+
typeIsLegalBoolVec(1, BoolVecTys, ST)));
236239
if (XLen == 64 || ST.hasStdExtD())
237240
SelectActions.legalFor({{s64, sXLen}});
238241
SelectActions.widenScalarToNextPow2(0)

0 commit comments

Comments
 (0)