Skip to content

Commit e09da85

Browse files
[RISCV][GISEL] Legalize G_ICMP for scalable vector types
The result of a vector G_ICMP is a vector with an s1 element type. The input vectors can be integer, floating-point, or boolean element type.
1 parent 763a4f4 commit e09da85

File tree

4 files changed

+831
-8
lines changed

4 files changed

+831
-8
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,9 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
236236

237237
getActionDefinitionsBuilder(G_ICMP)
238238
.legalFor({{sXLen, sXLen}, {sXLen, p0}})
239+
.legalIf(all(typeIsLegalBoolVec(0, BoolVecTys, ST),
240+
typeIsLegalIntOrFPVec(1, IntOrFPVecTys, ST)))
241+
.widenScalarOrEltToNextPow2OrMinSize(1, 8)
239242
.widenScalarToNextPow2(1)
240243
.clampScalar(1, sXLen, sXLen)
241244
.clampScalar(0, sXLen, sXLen);

0 commit comments

Comments
 (0)