@@ -2158,8 +2158,7 @@ bool SIFoldOperandsImpl::tryFoldImmRegSequence(MachineInstr &MI) {
2158
2158
SmallVector<uint64_t , 8 > ImmVals;
2159
2159
uint64_t ImmVal = 0 ;
2160
2160
uint64_t ImmSize = 0 ;
2161
- for (unsigned i = 0 ; i < Defs.size (); ++i) {
2162
- auto &[Op, SubIdx] = Defs[i];
2161
+ for (auto &[Op, SubIdx] : Defs) {
2163
2162
unsigned SubRegSize = TRI->getSubRegIdxSize (SubIdx);
2164
2163
unsigned Shift = (TRI->getChannelFromSubReg (SubIdx) % 2 ) * SubRegSize;
2165
2164
ImmSize += SubRegSize;
@@ -2178,9 +2177,6 @@ bool SIFoldOperandsImpl::tryFoldImmRegSequence(MachineInstr &MI) {
2178
2177
}
2179
2178
}
2180
2179
2181
- assert (ImmVals.size () > 0 &&
2182
- " REG_SEQUENCE should have at least 1 operand pair" );
2183
-
2184
2180
// Can only combine REG_SEQUENCE into one 64b immediate materialization mov.
2185
2181
if (DefRC == TRI->getVGPR64Class ()) {
2186
2182
BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
@@ -2201,7 +2197,7 @@ bool SIFoldOperandsImpl::tryFoldImmRegSequence(MachineInstr &MI) {
2201
2197
2202
2198
for (unsigned i = 0 ; i < ImmVals.size (); ++i) {
2203
2199
const TargetRegisterClass *RC = TRI->getVGPR64Class ();
2204
- auto MovReg = MRI->createVirtualRegister (RC);
2200
+ Register MovReg = MRI->createVirtualRegister (RC);
2205
2201
// Duplicate vmov imm materializations (e.g., splatted operands) should get
2206
2202
// combined by MachineCSE pass.
2207
2203
BuildMI (*MI.getParent (), MI, MI.getDebugLoc (),
0 commit comments