@@ -503,30 +503,32 @@ bool RISCVVectorPeephole::foldVMV_V_V(MachineInstr &MI) {
503
503
if (getSEWLMULRatio (MI) != getSEWLMULRatio (*Src))
504
504
return false ;
505
505
506
- // Src needs to have the same passthru as VMV_V_V
507
- MachineOperand &SrcPassthru = Src->getOperand (1 );
508
- if (SrcPassthru.getReg () != RISCV::NoRegister &&
509
- SrcPassthru.getReg () != Passthru.getReg ())
510
- return false ;
506
+ if (Passthru.getReg () != RISCV::NoRegister) {
507
+ // Src needs to have the same passthru as VMV_V_V
508
+ MachineOperand &SrcPassthru = Src->getOperand (1 );
509
+ if (SrcPassthru.getReg () != RISCV::NoRegister &&
510
+ SrcPassthru.getReg () != Passthru.getReg ())
511
+ return false ;
511
512
512
- // Src VL will have already been reduced if legal (see tryToReduceVL),
513
- // so we don't need to handle a smaller source VL here. However, the
514
- // user's VL may be larger
515
- MachineOperand &SrcVL = Src->getOperand (RISCVII::getVLOpNum (Src->getDesc ()));
516
- if (!isVLKnownLE (SrcVL, MI.getOperand (3 )))
517
- return false ;
513
+ // Src VL will have already been reduced if legal (see tryToReduceVL),
514
+ // so we don't need to handle a smaller source VL here. However, the
515
+ // user's VL may be larger
516
+ MachineOperand &SrcVL = Src->getOperand (RISCVII::getVLOpNum (Src->getDesc ()));
517
+ if (!isVLKnownLE (SrcVL, MI.getOperand (3 )))
518
+ return false ;
518
519
519
- // If the new passthru doesn't dominate Src, try to move Src so it does.
520
- if (!ensureDominates (Passthru, *Src))
521
- return false ;
520
+ // If the new passthru doesn't dominate Src, try to move Src so it does.
521
+ if (!ensureDominates (Passthru, *Src))
522
+ return false ;
522
523
523
- if (SrcPassthru.getReg () != Passthru.getReg ()) {
524
- SrcPassthru.setReg (Passthru.getReg ());
525
- // If Src is masked then its passthru needs to be in VRNoV0.
526
- if (Passthru.getReg () != RISCV::NoRegister)
527
- MRI->constrainRegClass (Passthru.getReg (),
528
- TII->getRegClass (Src->getDesc (), 1 , TRI,
529
- *Src->getParent ()->getParent ()));
524
+ if (SrcPassthru.getReg () != Passthru.getReg ()) {
525
+ SrcPassthru.setReg (Passthru.getReg ());
526
+ // If Src is masked then its passthru needs to be in VRNoV0.
527
+ if (Passthru.getReg () != RISCV::NoRegister)
528
+ MRI->constrainRegClass (Passthru.getReg (),
529
+ TII->getRegClass (Src->getDesc (), 1 , TRI,
530
+ *Src->getParent ()->getParent ()));
531
+ }
530
532
}
531
533
532
534
// Use a conservative tu,mu policy, RISCVInsertVSETVLI will relax it if
0 commit comments