Lines Matching refs:S32
5933 const LLT S32 = LLT::scalar(32); in lowerU64ToF32BitOps() local
5936 assert(MRI.getType(Src) == S64 && MRI.getType(Dst) == S32); in lowerU64ToF32BitOps()
5948 auto Zero32 = MIRBuilder.buildConstant(S32, 0); in lowerU64ToF32BitOps()
5951 auto LZ = MIRBuilder.buildCTLZ_ZERO_UNDEF(S32, Src); in lowerU64ToF32BitOps()
5953 auto K = MIRBuilder.buildConstant(S32, 127U + 63U); in lowerU64ToF32BitOps()
5954 auto Sub = MIRBuilder.buildSub(S32, K, LZ); in lowerU64ToF32BitOps()
5957 auto E = MIRBuilder.buildSelect(S32, NotZero, Sub, Zero32); in lowerU64ToF32BitOps()
5968 auto ShlE = MIRBuilder.buildShl(S32, E, MIRBuilder.buildConstant(S32, 23)); in lowerU64ToF32BitOps()
5969 auto V = MIRBuilder.buildOr(S32, ShlE, MIRBuilder.buildTrunc(S32, UShl)); in lowerU64ToF32BitOps()
5974 auto One = MIRBuilder.buildConstant(S32, 1); in lowerU64ToF32BitOps()
5976 auto VTrunc1 = MIRBuilder.buildAnd(S32, V, One); in lowerU64ToF32BitOps()
5977 auto Select0 = MIRBuilder.buildSelect(S32, TCmp, VTrunc1, Zero32); in lowerU64ToF32BitOps()
5978 auto R = MIRBuilder.buildSelect(S32, RCmp, One, Select0); in lowerU64ToF32BitOps()
6020 const LLT S32 = LLT::scalar(32); in lowerSITOFP() local
6034 if (DstTy == S32) { in lowerSITOFP()
6046 auto R = MIRBuilder.buildUITOFP(S32, Xor); in lowerSITOFP()
6048 auto RNeg = MIRBuilder.buildFNeg(S32, R); in lowerSITOFP()
6065 const LLT S32 = LLT::scalar(32); in lowerFPTOUI() local
6067 if (SrcTy != S64 && SrcTy != S32) in lowerFPTOUI()
6069 if (DstTy != S32 && DstTy != S64) in lowerFPTOUI()
6108 const LLT S32 = LLT::scalar(32); in lowerFPTOSI() local
6111 if (SrcTy.getScalarType() != S32 || DstTy.getScalarType() != S64) in lowerFPTOSI()
6181 const LLT S32 = LLT::scalar(32); in lowerFPTRUNC_F64_TO_F16() local
6184 auto Unmerge = MIRBuilder.buildUnmerge(S32, Src); in lowerFPTRUNC_F64_TO_F16()
6188 auto E = MIRBuilder.buildLShr(S32, UH, MIRBuilder.buildConstant(S32, 20)); in lowerFPTRUNC_F64_TO_F16()
6189 E = MIRBuilder.buildAnd(S32, E, MIRBuilder.buildConstant(S32, ExpMask)); in lowerFPTRUNC_F64_TO_F16()
6194 S32, E, MIRBuilder.buildConstant(S32, -ExpBiasf64 + ExpBiasf16)); in lowerFPTRUNC_F64_TO_F16()
6196 auto M = MIRBuilder.buildLShr(S32, UH, MIRBuilder.buildConstant(S32, 8)); in lowerFPTRUNC_F64_TO_F16()
6197 M = MIRBuilder.buildAnd(S32, M, MIRBuilder.buildConstant(S32, 0xffe)); in lowerFPTRUNC_F64_TO_F16()
6199 auto MaskedSig = MIRBuilder.buildAnd(S32, UH, in lowerFPTRUNC_F64_TO_F16()
6200 MIRBuilder.buildConstant(S32, 0x1ff)); in lowerFPTRUNC_F64_TO_F16()
6201 MaskedSig = MIRBuilder.buildOr(S32, MaskedSig, U); in lowerFPTRUNC_F64_TO_F16()
6203 auto Zero = MIRBuilder.buildConstant(S32, 0); in lowerFPTRUNC_F64_TO_F16()
6205 auto Lo40Set = MIRBuilder.buildZExt(S32, SigCmpNE0); in lowerFPTRUNC_F64_TO_F16()
6206 M = MIRBuilder.buildOr(S32, M, Lo40Set); in lowerFPTRUNC_F64_TO_F16()
6209 auto Bits0x200 = MIRBuilder.buildConstant(S32, 0x0200); in lowerFPTRUNC_F64_TO_F16()
6211 auto SelectCC = MIRBuilder.buildSelect(S32, CmpM_NE0, Bits0x200, Zero); in lowerFPTRUNC_F64_TO_F16()
6213 auto Bits0x7c00 = MIRBuilder.buildConstant(S32, 0x7c00); in lowerFPTRUNC_F64_TO_F16()
6214 auto I = MIRBuilder.buildOr(S32, SelectCC, Bits0x7c00); in lowerFPTRUNC_F64_TO_F16()
6217 auto EShl12 = MIRBuilder.buildShl(S32, E, MIRBuilder.buildConstant(S32, 12)); in lowerFPTRUNC_F64_TO_F16()
6218 auto N = MIRBuilder.buildOr(S32, M, EShl12); in lowerFPTRUNC_F64_TO_F16()
6221 auto One = MIRBuilder.buildConstant(S32, 1); in lowerFPTRUNC_F64_TO_F16()
6222 auto OneSubExp = MIRBuilder.buildSub(S32, One, E); in lowerFPTRUNC_F64_TO_F16()
6223 auto B = MIRBuilder.buildSMax(S32, OneSubExp, Zero); in lowerFPTRUNC_F64_TO_F16()
6224 B = MIRBuilder.buildSMin(S32, B, MIRBuilder.buildConstant(S32, 13)); in lowerFPTRUNC_F64_TO_F16()
6226 auto SigSetHigh = MIRBuilder.buildOr(S32, M, in lowerFPTRUNC_F64_TO_F16()
6227 MIRBuilder.buildConstant(S32, 0x1000)); in lowerFPTRUNC_F64_TO_F16()
6229 auto D = MIRBuilder.buildLShr(S32, SigSetHigh, B); in lowerFPTRUNC_F64_TO_F16()
6230 auto D0 = MIRBuilder.buildShl(S32, D, B); in lowerFPTRUNC_F64_TO_F16()
6234 auto D1 = MIRBuilder.buildZExt(S32, D0_NE_SigSetHigh); in lowerFPTRUNC_F64_TO_F16()
6235 D = MIRBuilder.buildOr(S32, D, D1); in lowerFPTRUNC_F64_TO_F16()
6238 auto V = MIRBuilder.buildSelect(S32, CmpELtOne, D, N); in lowerFPTRUNC_F64_TO_F16()
6240 auto VLow3 = MIRBuilder.buildAnd(S32, V, MIRBuilder.buildConstant(S32, 7)); in lowerFPTRUNC_F64_TO_F16()
6241 V = MIRBuilder.buildLShr(S32, V, MIRBuilder.buildConstant(S32, 2)); in lowerFPTRUNC_F64_TO_F16()
6244 MIRBuilder.buildConstant(S32, 3)); in lowerFPTRUNC_F64_TO_F16()
6245 auto V0 = MIRBuilder.buildZExt(S32, VLow3Eq3); in lowerFPTRUNC_F64_TO_F16()
6248 MIRBuilder.buildConstant(S32, 5)); in lowerFPTRUNC_F64_TO_F16()
6249 auto V1 = MIRBuilder.buildZExt(S32, VLow3Gt5); in lowerFPTRUNC_F64_TO_F16()
6251 V1 = MIRBuilder.buildOr(S32, V0, V1); in lowerFPTRUNC_F64_TO_F16()
6252 V = MIRBuilder.buildAdd(S32, V, V1); in lowerFPTRUNC_F64_TO_F16()
6255 E, MIRBuilder.buildConstant(S32, 30)); in lowerFPTRUNC_F64_TO_F16()
6256 V = MIRBuilder.buildSelect(S32, CmpEGt30, in lowerFPTRUNC_F64_TO_F16()
6257 MIRBuilder.buildConstant(S32, 0x7c00), V); in lowerFPTRUNC_F64_TO_F16()
6260 E, MIRBuilder.buildConstant(S32, 1039)); in lowerFPTRUNC_F64_TO_F16()
6261 V = MIRBuilder.buildSelect(S32, CmpEGt1039, I, V); in lowerFPTRUNC_F64_TO_F16()
6264 auto Sign = MIRBuilder.buildLShr(S32, UH, MIRBuilder.buildConstant(S32, 16)); in lowerFPTRUNC_F64_TO_F16()
6265 Sign = MIRBuilder.buildAnd(S32, Sign, MIRBuilder.buildConstant(S32, 0x8000)); in lowerFPTRUNC_F64_TO_F16()
6268 V = MIRBuilder.buildOr(S32, Sign, V); in lowerFPTRUNC_F64_TO_F16()