Skip to content

Commit d4fa596

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 db7450b commit d4fa596

File tree

4 files changed

+831
-9
lines changed

4 files changed

+831
-9
lines changed

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

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

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

0 commit comments

Comments
 (0)