@@ -436,11 +436,9 @@ bool matchExtUaddvToUaddlv(MachineInstr &MI, MachineRegisterInfo &MRI,
436
436
if ((DstTy.getScalarSizeInBits () == 16 &&
437
437
ExtSrcTy.getNumElements () % 8 == 0 && ExtSrcTy.getNumElements () < 256 ) ||
438
438
(DstTy.getScalarSizeInBits () == 32 &&
439
- ExtSrcTy.getNumElements () % 4 == 0 &&
440
- ExtSrcTy.getNumElements () < 65536 ) ||
439
+ ExtSrcTy.getNumElements () % 4 == 0 ) ||
441
440
(DstTy.getScalarSizeInBits () == 64 &&
442
- ExtSrcTy.getNumElements () % 4 == 0 &&
443
- ExtSrcTy.getNumElements () < 4294967296 )) {
441
+ ExtSrcTy.getNumElements () % 4 == 0 )) {
444
442
std::get<0 >(MatchInfo) = ExtSrcReg;
445
443
return true ;
446
444
}
@@ -494,8 +492,7 @@ void applyExtUaddvToUaddlv(MachineInstr &MI, MachineRegisterInfo &MRI,
494
492
495
493
unsigned MidScalarSize = MainTy.getScalarSizeInBits () * 2 ;
496
494
LLT MidScalarLLT = LLT::scalar (MidScalarSize);
497
- Register zeroReg =
498
- B.buildConstant (LLT::scalar (64 ), 0 )->getOperand (0 ).getReg ();
495
+ Register zeroReg = B.buildConstant (LLT::scalar (64 ), 0 ).getReg (0 );
499
496
for (unsigned I = 0 ; I < WorkingRegisters.size (); I++) {
500
497
// If the number of elements is too small to build an instruction, extend
501
498
// its size before applying addlv
@@ -506,17 +503,15 @@ void applyExtUaddvToUaddlv(MachineInstr &MI, MachineRegisterInfo &MRI,
506
503
B.buildInstr (std::get<1 >(MatchInfo) ? TargetOpcode::G_SEXT
507
504
: TargetOpcode::G_ZEXT,
508
505
{LLT::fixed_vector (4 , 16 )}, {WorkingRegisters[I]})
509
- ->getOperand (0 )
510
- .getReg ();
506
+ .getReg (0 );
511
507
}
512
508
513
509
// Generate the {U/S}ADDLV instruction, whose output is always double of the
514
510
// Src's Scalar size
515
511
LLT addlvTy = MidScalarSize <= 32 ? LLT::fixed_vector (4 , 32 )
516
512
: LLT::fixed_vector (2 , 64 );
517
- Register addlvReg = B.buildInstr (Opc, {addlvTy}, {WorkingRegisters[I]})
518
- ->getOperand (0 )
519
- .getReg ();
513
+ Register addlvReg =
514
+ B.buildInstr (Opc, {addlvTy}, {WorkingRegisters[I]}).getReg (0 );
520
515
521
516
// The output from {U/S}ADDLV gets placed in the lowest lane of a v4i32 or
522
517
// v2i64 register.
@@ -526,15 +521,13 @@ void applyExtUaddvToUaddlv(MachineInstr &MI, MachineRegisterInfo &MRI,
526
521
if (MidScalarSize == 32 || MidScalarSize == 64 ) {
527
522
WorkingRegisters[I] = B.buildInstr (AArch64::G_EXTRACT_VECTOR_ELT,
528
523
{MidScalarLLT}, {addlvReg, zeroReg})
529
- ->getOperand (0 )
530
- .getReg ();
524
+ .getReg (0 );
531
525
} else {
532
526
Register extractReg = B.buildInstr (AArch64::G_EXTRACT_VECTOR_ELT,
533
527
{LLT::scalar (32 )}, {addlvReg, zeroReg})
534
- ->getOperand (0 )
535
- .getReg ();
528
+ .getReg (0 );
536
529
WorkingRegisters[I] =
537
- B.buildTrunc ({MidScalarLLT}, {extractReg})-> getOperand ( 0 ) .getReg ();
530
+ B.buildTrunc ({MidScalarLLT}, {extractReg}).getReg (0 );
538
531
}
539
532
}
540
533
0 commit comments