Lines Matching defs:S32
7471 const LLT S32 = LLT::scalar(32);
7474 assert(MRI.getType(Src) == S64 && MRI.getType(Dst) == S32);
7486 auto Zero32 = MIRBuilder.buildConstant(S32, 0);
7489 auto LZ = MIRBuilder.buildCTLZ_ZERO_UNDEF(S32, Src);
7491 auto K = MIRBuilder.buildConstant(S32, 127U + 63U);
7492 auto Sub = MIRBuilder.buildSub(S32, K, LZ);
7495 auto E = MIRBuilder.buildSelect(S32, NotZero, Sub, Zero32);
7506 auto ShlE = MIRBuilder.buildShl(S32, E, MIRBuilder.buildConstant(S32, 23));
7507 auto V = MIRBuilder.buildOr(S32, ShlE, MIRBuilder.buildTrunc(S32, UShl));
7512 auto One = MIRBuilder.buildConstant(S32, 1);
7514 auto VTrunc1 = MIRBuilder.buildAnd(S32, V, One);
7515 auto Select0 = MIRBuilder.buildSelect(S32, TCmp, VTrunc1, Zero32);
7516 auto R = MIRBuilder.buildSelect(S32, RCmp, One, Select0);
7529 const LLT S32 = LLT::scalar(32);
7532 assert(MRI.getType(Src) == S64 && MRI.getType(Dst) == S32);
7541 auto SmallResult = MIRBuilder.buildSITOFP(S32, Src);
7546 auto HalvedFP = MIRBuilder.buildSITOFP(S32, RoundedHalved);
7547 auto LargeResult = MIRBuilder.buildFAdd(S32, HalvedFP, HalvedFP);
7564 const LLT S32 = LLT::scalar(32);
7583 auto LowBits = MIRBuilder.buildTrunc(S32, Src);
7626 const LLT S32 = LLT::scalar(32);
7640 if (DstTy == S32) {
7652 auto R = MIRBuilder.buildUITOFP(S32, Xor);
7654 auto RNeg = MIRBuilder.buildFNeg(S32, R);
7668 const LLT S32 = LLT::scalar(32);
7670 if (SrcTy != S64 && SrcTy != S32)
7672 if (DstTy != S32 && DstTy != S64)
7708 const LLT S32 = LLT::scalar(32);
7711 if (SrcTy.getScalarType() != S32 || DstTy.getScalarType() != S64)
7873 const LLT S32 = LLT::scalar(32);
7884 auto Src32 = MIRBuilder.buildFPTrunc(S32, Src, Flags);
7894 auto Unmerge = MIRBuilder.buildUnmerge(S32, Src);
7898 auto E = MIRBuilder.buildLShr(S32, UH, MIRBuilder.buildConstant(S32, 20));
7899 E = MIRBuilder.buildAnd(S32, E, MIRBuilder.buildConstant(S32, ExpMask));
7904 S32, E, MIRBuilder.buildConstant(S32, -ExpBiasf64 + ExpBiasf16));
7906 auto M = MIRBuilder.buildLShr(S32, UH, MIRBuilder.buildConstant(S32, 8));
7907 M = MIRBuilder.buildAnd(S32, M, MIRBuilder.buildConstant(S32, 0xffe));
7909 auto MaskedSig = MIRBuilder.buildAnd(S32, UH,
7910 MIRBuilder.buildConstant(S32, 0x1ff));
7911 MaskedSig = MIRBuilder.buildOr(S32, MaskedSig, U);
7913 auto Zero = MIRBuilder.buildConstant(S32, 0);
7915 auto Lo40Set = MIRBuilder.buildZExt(S32, SigCmpNE0);
7916 M = MIRBuilder.buildOr(S32, M, Lo40Set);
7919 auto Bits0x200 = MIRBuilder.buildConstant(S32, 0x0200);
7921 auto SelectCC = MIRBuilder.buildSelect(S32, CmpM_NE0, Bits0x200, Zero);
7923 auto Bits0x7c00 = MIRBuilder.buildConstant(S32, 0x7c00);
7924 auto I = MIRBuilder.buildOr(S32, SelectCC, Bits0x7c00);
7927 auto EShl12 = MIRBuilder.buildShl(S32, E, MIRBuilder.buildConstant(S32, 12));
7928 auto N = MIRBuilder.buildOr(S32, M, EShl12);
7931 auto One = MIRBuilder.buildConstant(S32, 1);
7932 auto OneSubExp = MIRBuilder.buildSub(S32, One, E);
7933 auto B = MIRBuilder.buildSMax(S32, OneSubExp, Zero);
7934 B = MIRBuilder.buildSMin(S32, B, MIRBuilder.buildConstant(S32, 13));
7936 auto SigSetHigh = MIRBuilder.buildOr(S32, M,
7937 MIRBuilder.buildConstant(S32, 0x1000));
7939 auto D = MIRBuilder.buildLShr(S32, SigSetHigh, B);
7940 auto D0 = MIRBuilder.buildShl(S32, D, B);
7944 auto D1 = MIRBuilder.buildZExt(S32, D0_NE_SigSetHigh);
7945 D = MIRBuilder.buildOr(S32, D, D1);
7948 auto V = MIRBuilder.buildSelect(S32, CmpELtOne, D, N);
7950 auto VLow3 = MIRBuilder.buildAnd(S32, V, MIRBuilder.buildConstant(S32, 7));
7951 V = MIRBuilder.buildLShr(S32, V, MIRBuilder.buildConstant(S32, 2));
7954 MIRBuilder.buildConstant(S32, 3));
7955 auto V0 = MIRBuilder.buildZExt(S32, VLow3Eq3);
7958 MIRBuilder.buildConstant(S32, 5));
7959 auto V1 = MIRBuilder.buildZExt(S32, VLow3Gt5);
7961 V1 = MIRBuilder.buildOr(S32, V0, V1);
7962 V = MIRBuilder.buildAdd(S32, V, V1);
7965 E, MIRBuilder.buildConstant(S32, 30));
7966 V = MIRBuilder.buildSelect(S32, CmpEGt30,
7967 MIRBuilder.buildConstant(S32, 0x7c00), V);
7970 E, MIRBuilder.buildConstant(S32, 1039));
7971 V = MIRBuilder.buildSelect(S32, CmpEGt1039, I, V);
7974 auto Sign = MIRBuilder.buildLShr(S32, UH, MIRBuilder.buildConstant(S32, 16));
7975 Sign = MIRBuilder.buildAnd(S32, Sign, MIRBuilder.buildConstant(S32, 0x8000));
7978 V = MIRBuilder.buildOr(S32, Sign, V);