@@ -6004,41 +6004,20 @@ bool CombinerHelper::matchTruncUSatU(MachineInstr &MI,
60046004 unsigned NumSrcBits = SrcTy.getScalarSizeInBits ();
60056005 assert (NumSrcBits > NumDstBits && " Unexpected types for truncate operation" );
60066006
6007+ if (!LI || !isLegal ({TargetOpcode::G_TRUNC_SSAT_U, {DstTy, SrcTy}}))
6008+ return false ;
60076009 APInt UnsignedMax = APInt::getMaxValue (NumDstBits).zext (NumSrcBits);
6008- if (LI && isLegal ({TargetOpcode::G_TRUNC_SSAT_U, {DstTy, SrcTy}})) {
6009- if (mi_match (Min, MRI, m_SpecificICstOrSplat (UnsignedMax)) &&
6010- !mi_match (Val, MRI, m_GSMax (m_Reg (), m_Reg ())))
6011- return true ;
6012- }
6013- return false ;
6014- }
6015-
6016- void CombinerHelper::applyTruncUSatU (MachineInstr &MI,
6017- MachineInstr &MinMI) const {
6018- Register Dst = MI.getOperand (0 ).getReg ();
6019- Register Src = MinMI.getOperand (1 ).getReg ();
6020- Builder.buildTruncUSatU (Dst, Src);
6021- MI.eraseFromParent ();
6010+ return mi_match (Min, MRI, m_SpecificICstOrSplat (UnsignedMax)) &&
6011+ !mi_match (Val, MRI, m_GSMax (m_Reg (), m_Reg ()));
60226012}
60236013
60246014bool CombinerHelper::matchTruncUSatUToFPTOUISat (MachineInstr &MI,
60256015 MachineInstr &SrcMI) const {
60266016 LLT DstTy = MRI.getType (MI.getOperand (0 ).getReg ());
60276017 LLT SrcTy = MRI.getType (SrcMI.getOperand (1 ).getReg ());
60286018
6029- if (LI &&
6030- isLegalOrBeforeLegalizer ({TargetOpcode::G_FPTOUI_SAT, {DstTy, SrcTy}})) {
6031- return true ;
6032- }
6033- return false ;
6034- }
6035-
6036- void CombinerHelper::applyTruncUSatUToFPTOUISat (MachineInstr &MI,
6037- MachineInstr &SrcMI) const {
6038- Register Dst = MI.getOperand (0 ).getReg ();
6039- Register Src = SrcMI.getOperand (1 ).getReg ();
6040- Builder.buildFPTOUI_SAT (Dst, Src);
6041- MI.eraseFromParent ();
6019+ return LI &&
6020+ isLegalOrBeforeLegalizer ({TargetOpcode::G_FPTOUI_SAT, {DstTy, SrcTy}});
60426021}
60436022
60446023bool CombinerHelper::matchRedundantNegOperands (MachineInstr &MI,
0 commit comments