@@ -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