Skip to content

Commit 3163f83

Browse files
authored
[RISCV][GISel] Use boolean predicated legalization action methods to simplify code. NFC (#115063)
These allow us to pass a subtarget feature to conditionally enable the legalization action. These were added by a3010c7 and are used by AArch64.
1 parent 339f395 commit 3163f83

File tree

1 file changed

+25
-28
lines changed

1 file changed

+25
-28
lines changed

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

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
157157
getActionDefinitionsBuilder({G_UADDSAT, G_SADDSAT, G_USUBSAT, G_SSUBSAT})
158158
.lower();
159159

160-
auto &ShiftActions = getActionDefinitionsBuilder({G_ASHR, G_LSHR, G_SHL});
161-
ShiftActions.legalFor({{s32, s32}, {sXLen, sXLen}})
160+
getActionDefinitionsBuilder({G_ASHR, G_LSHR, G_SHL})
161+
.legalFor({{s32, s32}, {sXLen, sXLen}})
162162
.widenScalarToNextPow2(0)
163163
.clampScalar(1, s32, sXLen)
164164
.clampScalar(0, s32, sXLen)
@@ -201,10 +201,10 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
201201

202202
getActionDefinitionsBuilder({G_FSHL, G_FSHR}).lower();
203203

204-
auto &RotateActions = getActionDefinitionsBuilder({G_ROTL, G_ROTR});
205-
if (ST.hasStdExtZbb() || ST.hasStdExtZbkb())
206-
RotateActions.legalFor({{s32, s32}, {sXLen, sXLen}});
207-
RotateActions.lower();
204+
getActionDefinitionsBuilder({G_ROTL, G_ROTR})
205+
.legalFor(ST.hasStdExtZbb() || ST.hasStdExtZbkb(),
206+
{{s32, s32}, {sXLen, sXLen}})
207+
.lower();
208208

209209
getActionDefinitionsBuilder(G_BITREVERSE).maxScalar(0, sXLen).lower();
210210

@@ -244,11 +244,11 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
244244
CTPOPActions.maxScalar(0, sXLen).scalarSameSizeAs(1, 0).lower();
245245
}
246246

247-
auto &ConstantActions = getActionDefinitionsBuilder(G_CONSTANT);
248-
ConstantActions.legalFor({s32, p0});
249-
if (ST.is64Bit())
250-
ConstantActions.customFor({s64});
251-
ConstantActions.widenScalarToNextPow2(0).clampScalar(0, s32, sXLen);
247+
getActionDefinitionsBuilder(G_CONSTANT)
248+
.legalFor({s32, p0})
249+
.customFor(ST.is64Bit(), {s64})
250+
.widenScalarToNextPow2(0)
251+
.clampScalar(0, s32, sXLen);
252252

253253
// TODO: transform illegal vector types into legal vector type
254254
getActionDefinitionsBuilder(
@@ -267,14 +267,12 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
267267
.clampScalar(1, sXLen, sXLen)
268268
.clampScalar(0, sXLen, sXLen);
269269

270-
auto &SelectActions =
271-
getActionDefinitionsBuilder(G_SELECT)
272-
.legalFor({{s32, sXLen}, {p0, sXLen}})
273-
.legalIf(all(typeIsLegalIntOrFPVec(0, IntOrFPVecTys, ST),
274-
typeIsLegalBoolVec(1, BoolVecTys, ST)));
275-
if (XLen == 64 || ST.hasStdExtD())
276-
SelectActions.legalFor({{s64, sXLen}});
277-
SelectActions.widenScalarToNextPow2(0)
270+
getActionDefinitionsBuilder(G_SELECT)
271+
.legalFor({{s32, sXLen}, {p0, sXLen}})
272+
.legalIf(all(typeIsLegalIntOrFPVec(0, IntOrFPVecTys, ST),
273+
typeIsLegalBoolVec(1, BoolVecTys, ST)))
274+
.legalFor(XLen == 64 || ST.hasStdExtD(), {{s64, sXLen}})
275+
.widenScalarToNextPow2(0)
278276
.clampScalar(0, s32, (XLen == 64 || ST.hasStdExtD()) ? s64 : s32)
279277
.clampScalar(1, sXLen, sXLen);
280278

@@ -471,16 +469,15 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
471469
// TODO: Use libcall for sDoubleXLen.
472470
getActionDefinitionsBuilder({G_UDIVREM, G_SDIVREM}).lower();
473471

474-
auto &AbsActions = getActionDefinitionsBuilder(G_ABS);
475-
if (ST.hasStdExtZbb())
476-
AbsActions.customFor({sXLen}).minScalar(0, sXLen);
477-
AbsActions.lower();
472+
getActionDefinitionsBuilder(G_ABS)
473+
.customFor(ST.hasStdExtZbb(), {sXLen})
474+
.minScalar(ST.hasStdExtZbb(), 0, sXLen)
475+
.lower();
478476

479-
auto &MinMaxActions =
480-
getActionDefinitionsBuilder({G_UMAX, G_UMIN, G_SMAX, G_SMIN});
481-
if (ST.hasStdExtZbb())
482-
MinMaxActions.legalFor({sXLen}).minScalar(0, sXLen);
483-
MinMaxActions.lower();
477+
getActionDefinitionsBuilder({G_UMAX, G_UMIN, G_SMAX, G_SMIN})
478+
.legalFor(ST.hasStdExtZbb(), {sXLen})
479+
.minScalar(ST.hasStdExtZbb(), 0, sXLen)
480+
.lower();
484481

485482
getActionDefinitionsBuilder(G_FRAME_INDEX).legalFor({p0});
486483

0 commit comments

Comments
 (0)