@@ -157,8 +157,8 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
157
157
getActionDefinitionsBuilder ({G_UADDSAT, G_SADDSAT, G_USUBSAT, G_SSUBSAT})
158
158
.lower ();
159
159
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 }})
162
162
.widenScalarToNextPow2 (0 )
163
163
.clampScalar (1 , s32, sXLen )
164
164
.clampScalar (0 , s32, sXLen )
@@ -201,10 +201,10 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
201
201
202
202
getActionDefinitionsBuilder ({G_FSHL, G_FSHR}).lower ();
203
203
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 ();
208
208
209
209
getActionDefinitionsBuilder (G_BITREVERSE).maxScalar (0 , sXLen ).lower ();
210
210
@@ -244,11 +244,11 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
244
244
CTPOPActions.maxScalar (0 , sXLen ).scalarSameSizeAs (1 , 0 ).lower ();
245
245
}
246
246
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 );
252
252
253
253
// TODO: transform illegal vector types into legal vector type
254
254
getActionDefinitionsBuilder (
@@ -267,14 +267,12 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
267
267
.clampScalar (1 , sXLen , sXLen )
268
268
.clampScalar (0 , sXLen , sXLen );
269
269
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 )
278
276
.clampScalar (0 , s32, (XLen == 64 || ST.hasStdExtD ()) ? s64 : s32)
279
277
.clampScalar (1 , sXLen , sXLen );
280
278
@@ -471,16 +469,15 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
471
469
// TODO: Use libcall for sDoubleXLen.
472
470
getActionDefinitionsBuilder ({G_UDIVREM, G_SDIVREM}).lower ();
473
471
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 ();
478
476
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 ();
484
481
485
482
getActionDefinitionsBuilder (G_FRAME_INDEX).legalFor ({p0});
486
483
0 commit comments