Lines Matching refs:S32
6519 const LLT S32 = LLT::scalar(32); in lowerU64ToF32BitOps() local
6522 assert(MRI.getType(Src) == S64 && MRI.getType(Dst) == S32); in lowerU64ToF32BitOps()
6534 auto Zero32 = MIRBuilder.buildConstant(S32, 0); in lowerU64ToF32BitOps()
6537 auto LZ = MIRBuilder.buildCTLZ_ZERO_UNDEF(S32, Src); in lowerU64ToF32BitOps()
6539 auto K = MIRBuilder.buildConstant(S32, 127U + 63U); in lowerU64ToF32BitOps()
6540 auto Sub = MIRBuilder.buildSub(S32, K, LZ); in lowerU64ToF32BitOps()
6543 auto E = MIRBuilder.buildSelect(S32, NotZero, Sub, Zero32); in lowerU64ToF32BitOps()
6554 auto ShlE = MIRBuilder.buildShl(S32, E, MIRBuilder.buildConstant(S32, 23)); in lowerU64ToF32BitOps()
6555 auto V = MIRBuilder.buildOr(S32, ShlE, MIRBuilder.buildTrunc(S32, UShl)); in lowerU64ToF32BitOps()
6560 auto One = MIRBuilder.buildConstant(S32, 1); in lowerU64ToF32BitOps()
6562 auto VTrunc1 = MIRBuilder.buildAnd(S32, V, One); in lowerU64ToF32BitOps()
6563 auto Select0 = MIRBuilder.buildSelect(S32, TCmp, VTrunc1, Zero32); in lowerU64ToF32BitOps()
6564 auto R = MIRBuilder.buildSelect(S32, RCmp, One, Select0); in lowerU64ToF32BitOps()
6600 const LLT S32 = LLT::scalar(32); in lowerSITOFP() local
6614 if (DstTy == S32) { in lowerSITOFP()
6626 auto R = MIRBuilder.buildUITOFP(S32, Xor); in lowerSITOFP()
6628 auto RNeg = MIRBuilder.buildFNeg(S32, R); in lowerSITOFP()
6642 const LLT S32 = LLT::scalar(32); in lowerFPTOUI() local
6644 if (SrcTy != S64 && SrcTy != S32) in lowerFPTOUI()
6646 if (DstTy != S32 && DstTy != S64) in lowerFPTOUI()
6682 const LLT S32 = LLT::scalar(32); in lowerFPTOSI() local
6685 if (SrcTy.getScalarType() != S32 || DstTy.getScalarType() != S64) in lowerFPTOSI()
6747 const LLT S32 = LLT::scalar(32); in lowerFPTRUNC_F64_TO_F16() local
6758 auto Src32 = MIRBuilder.buildFPTrunc(S32, Src, Flags); in lowerFPTRUNC_F64_TO_F16()
6768 auto Unmerge = MIRBuilder.buildUnmerge(S32, Src); in lowerFPTRUNC_F64_TO_F16()
6772 auto E = MIRBuilder.buildLShr(S32, UH, MIRBuilder.buildConstant(S32, 20)); in lowerFPTRUNC_F64_TO_F16()
6773 E = MIRBuilder.buildAnd(S32, E, MIRBuilder.buildConstant(S32, ExpMask)); in lowerFPTRUNC_F64_TO_F16()
6778 S32, E, MIRBuilder.buildConstant(S32, -ExpBiasf64 + ExpBiasf16)); in lowerFPTRUNC_F64_TO_F16()
6780 auto M = MIRBuilder.buildLShr(S32, UH, MIRBuilder.buildConstant(S32, 8)); in lowerFPTRUNC_F64_TO_F16()
6781 M = MIRBuilder.buildAnd(S32, M, MIRBuilder.buildConstant(S32, 0xffe)); in lowerFPTRUNC_F64_TO_F16()
6783 auto MaskedSig = MIRBuilder.buildAnd(S32, UH, in lowerFPTRUNC_F64_TO_F16()
6784 MIRBuilder.buildConstant(S32, 0x1ff)); in lowerFPTRUNC_F64_TO_F16()
6785 MaskedSig = MIRBuilder.buildOr(S32, MaskedSig, U); in lowerFPTRUNC_F64_TO_F16()
6787 auto Zero = MIRBuilder.buildConstant(S32, 0); in lowerFPTRUNC_F64_TO_F16()
6789 auto Lo40Set = MIRBuilder.buildZExt(S32, SigCmpNE0); in lowerFPTRUNC_F64_TO_F16()
6790 M = MIRBuilder.buildOr(S32, M, Lo40Set); in lowerFPTRUNC_F64_TO_F16()
6793 auto Bits0x200 = MIRBuilder.buildConstant(S32, 0x0200); in lowerFPTRUNC_F64_TO_F16()
6795 auto SelectCC = MIRBuilder.buildSelect(S32, CmpM_NE0, Bits0x200, Zero); in lowerFPTRUNC_F64_TO_F16()
6797 auto Bits0x7c00 = MIRBuilder.buildConstant(S32, 0x7c00); in lowerFPTRUNC_F64_TO_F16()
6798 auto I = MIRBuilder.buildOr(S32, SelectCC, Bits0x7c00); in lowerFPTRUNC_F64_TO_F16()
6801 auto EShl12 = MIRBuilder.buildShl(S32, E, MIRBuilder.buildConstant(S32, 12)); in lowerFPTRUNC_F64_TO_F16()
6802 auto N = MIRBuilder.buildOr(S32, M, EShl12); in lowerFPTRUNC_F64_TO_F16()
6805 auto One = MIRBuilder.buildConstant(S32, 1); in lowerFPTRUNC_F64_TO_F16()
6806 auto OneSubExp = MIRBuilder.buildSub(S32, One, E); in lowerFPTRUNC_F64_TO_F16()
6807 auto B = MIRBuilder.buildSMax(S32, OneSubExp, Zero); in lowerFPTRUNC_F64_TO_F16()
6808 B = MIRBuilder.buildSMin(S32, B, MIRBuilder.buildConstant(S32, 13)); in lowerFPTRUNC_F64_TO_F16()
6810 auto SigSetHigh = MIRBuilder.buildOr(S32, M, in lowerFPTRUNC_F64_TO_F16()
6811 MIRBuilder.buildConstant(S32, 0x1000)); in lowerFPTRUNC_F64_TO_F16()
6813 auto D = MIRBuilder.buildLShr(S32, SigSetHigh, B); in lowerFPTRUNC_F64_TO_F16()
6814 auto D0 = MIRBuilder.buildShl(S32, D, B); in lowerFPTRUNC_F64_TO_F16()
6818 auto D1 = MIRBuilder.buildZExt(S32, D0_NE_SigSetHigh); in lowerFPTRUNC_F64_TO_F16()
6819 D = MIRBuilder.buildOr(S32, D, D1); in lowerFPTRUNC_F64_TO_F16()
6822 auto V = MIRBuilder.buildSelect(S32, CmpELtOne, D, N); in lowerFPTRUNC_F64_TO_F16()
6824 auto VLow3 = MIRBuilder.buildAnd(S32, V, MIRBuilder.buildConstant(S32, 7)); in lowerFPTRUNC_F64_TO_F16()
6825 V = MIRBuilder.buildLShr(S32, V, MIRBuilder.buildConstant(S32, 2)); in lowerFPTRUNC_F64_TO_F16()
6828 MIRBuilder.buildConstant(S32, 3)); in lowerFPTRUNC_F64_TO_F16()
6829 auto V0 = MIRBuilder.buildZExt(S32, VLow3Eq3); in lowerFPTRUNC_F64_TO_F16()
6832 MIRBuilder.buildConstant(S32, 5)); in lowerFPTRUNC_F64_TO_F16()
6833 auto V1 = MIRBuilder.buildZExt(S32, VLow3Gt5); in lowerFPTRUNC_F64_TO_F16()
6835 V1 = MIRBuilder.buildOr(S32, V0, V1); in lowerFPTRUNC_F64_TO_F16()
6836 V = MIRBuilder.buildAdd(S32, V, V1); in lowerFPTRUNC_F64_TO_F16()
6839 E, MIRBuilder.buildConstant(S32, 30)); in lowerFPTRUNC_F64_TO_F16()
6840 V = MIRBuilder.buildSelect(S32, CmpEGt30, in lowerFPTRUNC_F64_TO_F16()
6841 MIRBuilder.buildConstant(S32, 0x7c00), V); in lowerFPTRUNC_F64_TO_F16()
6844 E, MIRBuilder.buildConstant(S32, 1039)); in lowerFPTRUNC_F64_TO_F16()
6845 V = MIRBuilder.buildSelect(S32, CmpEGt1039, I, V); in lowerFPTRUNC_F64_TO_F16()
6848 auto Sign = MIRBuilder.buildLShr(S32, UH, MIRBuilder.buildConstant(S32, 16)); in lowerFPTRUNC_F64_TO_F16()
6849 Sign = MIRBuilder.buildAnd(S32, Sign, MIRBuilder.buildConstant(S32, 0x8000)); in lowerFPTRUNC_F64_TO_F16()
6852 V = MIRBuilder.buildOr(S32, Sign, V); in lowerFPTRUNC_F64_TO_F16()