| /src/external/apache2/llvm/dist/llvm/lib/CodeGen/ |
| TypePromotion.cpp | 243 else if (auto *Trunc = dyn_cast<TruncInst>(V)) 244 return EqualTypeSize(Trunc); 565 LLVM_DEBUG(dbgs() << "IR Promotion: Creating " << *TruncTy << " Trunc for " 568 auto *Trunc = dyn_cast<Instruction>(Builder.CreateTrunc(V, TruncTy)); 569 if (Trunc) 570 NewInsts.insert(Trunc); 571 return Trunc; 584 if (Instruction *Trunc = InsertTrunc(Arg, Ty)) { 585 Trunc->moveBefore(Call); 586 Call->setArgOperand(i, Trunc); [all...] |
| InterleavedLoadCombinePass.cpp | 171 Trunc, 497 A = A.trunc(n); 498 pushBOperation(Trunc, APInt(sizeof(n) * 8, n)); 596 case Trunc: 597 OS << "Trunc ";
|
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/ |
| IntegerDivision.cpp | 508 Value *Trunc; 520 Trunc = Builder.CreateTrunc(ExtRem, RemTy); 522 Rem->replaceAllUsesWith(Trunc); 556 Value *Trunc; 568 Trunc = Builder.CreateTrunc(ExtRem, RemTy); 570 Rem->replaceAllUsesWith(Trunc); 605 Value *Trunc; 617 Trunc = Builder.CreateTrunc(ExtDiv, DivTy); 619 Div->replaceAllUsesWith(Trunc); 654 Value *Trunc; [all...] |
| BypassSlowDivision.cpp | 295 Builder.CreateCast(Instruction::Trunc, Divisor, BypassType); 297 Builder.CreateCast(Instruction::Trunc, Dividend, BypassType);
|
| /src/external/apache2/llvm/dist/llvm/lib/IR/ |
| ReplaceConstant.cpp | 51 case Instruction::Trunc:
|
| Instructions.cpp | 2654 case Instruction::Trunc: 2694 case Instruction::Trunc: 2742 // TRUNC > Integer Any Integral Any 2771 { 1, 0, 0,99,99, 0, 0,99,99,99, 0, 3, 0}, // Trunc -+ 2859 // ext, trunc -> bitcast, if the SrcTy and DstTy are same size 2860 // ext, trunc -> ext, if sizeof(SrcTy) < sizeof(DstTy) 2861 // ext, trunc -> trunc, if sizeof(SrcTy) > sizeof(DstTy) 2951 case Trunc: return new TruncInst (S, Ty, Name, InsertBefore); 2973 case Trunc: return new TruncInst (S, Ty, Name, InsertAtEnd) [all...] |
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/InstCombine/ |
| InstCombineCasts.cpp | 209 case Instruction::Trunc: 219 // This also handles the case of zext(trunc(x)) -> zext(x). 303 (CI.getOpcode() == Instruction::Trunc && 356 /// Ty will always be a type smaller than V. We should return true if trunc(V) 358 /// then trunc(inst(x,y)) can be computed as inst(trunc(x),trunc(y)), which only 443 case Instruction::Trunc: 444 // trunc(trunc(x)) -> trunc(x [all...] |
| InstCombineShifts.cpp | 73 Value *Trunc = nullptr; 75 m_CombineOr(m_CombineAnd(m_Trunc(m_Instruction(Sh1)), m_Value(Trunc)), 105 if (Trunc && !AnalyzeForSignBitExtraction && 127 if (HadTwoRightShifts && (Trunc || AnalyzeForSignBitExtraction)) { 145 // The flags can only be propagated if there wasn't a trunc. 146 if (!Trunc) { 147 // If the pattern did not involve trunc, and both of the original shifts 160 if (Trunc) { 162 Ret = CastInst::Create(Instruction::Trunc, NewShift, Sh0->getType()); 197 Value *Trunc; [all...] |
| InstCombineInternal.h | 321 Instruction *narrowBinOp(TruncInst &Trunc); 324 Instruction *narrowFunnelShift(TruncInst &Trunc); 671 Instruction *foldICmpTruncConstant(ICmpInst &Cmp, TruncInst *Trunc,
|
| InstCombinePHI.cpp | 788 Constant *Trunc = ConstantExpr::getTrunc(C, NarrowType); 789 if (ConstantExpr::getZExt(Trunc, C->getType()) != C) 791 NewIncoming.push_back(Trunc); 995 Instruction *Inst; // The trunc instruction. 1047 /// only used by trunc or trunc(lshr) operations. If so, we split the PHI into 1051 /// TODO: The user of the trunc may be an bitcast to float/double/vector or an 1104 // Otherwise it must be a lshr which can only be used by one trunc. 1470 // it is only used by trunc or trunc(lshr) operations. If so, we split th [all...] |
| InstCombineNegator.cpp | 344 case Instruction::Trunc: { 345 // `trunc` is negatible if its operand is negatible.
|
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/AggressiveInstCombine/ |
| TruncInstCombine.cpp | 48 /// that instruction, with respect to the Trunc expression dag optimizaton. 52 case Instruction::Trunc: 116 case Instruction::Trunc: 119 // trunc(trunc(x)) -> trunc(x) 120 // trunc(ext(x)) -> ext(x) if the source type is smaller than the new dest 121 // trunc(ext(x)) -> trunc(x) if the source type is larger than the new 228 // In this case the expression can be evaluated with the trunc instructio [all...] |
| /src/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/ |
| AMDGPULowerKernelArguments.cpp | 220 Value *Trunc = Builder.CreateTrunc(ExtractBits, ArgIntTy); 221 Value *NewVal = Builder.CreateBitCast(Trunc, ArgTy,
|
| AMDGPUISelLowering.cpp | 1711 // fq = trunc(fq); 1824 SDValue Trunc = DAG.getNode(ISD::FTRUNC, DL, MVT::f32, Mul2); 1825 SDValue Mad2 = DAG.getNode(FMAD, DL, MVT::f32, Trunc, 1829 SDValue Rcp_Hi = DAG.getNode(ISD::FP_TO_UINT, DL, HalfVT, Trunc); 2106 SDValue Trunc = DAG.getNode(ISD::FTRUNC, SL, VT, Div, Flags); 2107 SDValue Neg = DAG.getNode(ISD::FNEG, SL, VT, Trunc, Flags); 2116 // result = trunc(src) 2120 SDValue Trunc = DAG.getNode(ISD::FTRUNC, SL, MVT::f64, Src); 2129 SDValue NeTrunc = DAG.getSetCC(SL, SetCCVT, Src, Trunc, ISD::SETONE); 2134 return DAG.getNode(ISD::FADD, SL, MVT::f64, Trunc, Add) [all...] |
| AMDGPULegalizerInfo.cpp | 1922 // result = trunc(src) 1926 auto Trunc = B.buildIntrinsicTrunc(S64, Src); 1931 auto NeTrunc = B.buildFCmp(CmpInst::FCMP_ONE, S1, Src, Trunc); 1936 B.buildFAdd(MI.getOperand(0).getReg(), Trunc, Add); 1950 auto Trunc = B.buildIntrinsicTrunc(Ty, Div, Flags); 1951 auto Neg = B.buildFNeg(Ty, Trunc, Flags); 2066 auto Trunc = B.buildIntrinsicTrunc(S64, Src, Flags); 2070 auto Mul = B.buildFMul(S64, Trunc, K0, Flags); 2072 auto Fma = B.buildFMA(S64, FloorMul, K1, Trunc, Flags); 2846 // %trunc = G_INTRINSIC_TRUNC %mul [all...] |
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/ |
| SpeculativeExecution.cpp | 248 case Instruction::Trunc:
|
| /src/external/apache2/llvm/dist/clang/lib/AST/Interp/ |
| Interp.h | 121 auto Trunc = Value.trunc(Result.bitWidth()).toString(10); 123 S.report(Loc, diag::warn_integer_constant_overflow) << Trunc << Type; 846 unsigned Trunc(InterpState &S, CodePtr OpPC, unsigned Bits, const T &V) { 904 return ShiftLeft<TL, TR>(S, OpPC, LHS, Trunc<TR, TL>(S, OpPC, Bits, -RHS)); 906 return ShiftRight<TL, TR>(S, OpPC, LHS, Trunc<TR, TL>(S, OpPC, Bits, RHS)); 919 return ShiftRight<TL, TR>(S, OpPC, LHS, Trunc<TR, TL>(S, OpPC, Bits, -RHS)); 921 return ShiftLeft<TL, TR>(S, OpPC, LHS, Trunc<TR, TL>(S, OpPC, Bits, RHS));
|
| /src/external/apache2/llvm/dist/llvm/lib/Target/ARM/ |
| MVELaneInterleavingPass.cpp | 9 // This pass interleaves around sext/zext/trunc instructions. MVE does not have 10 // a single sext/zext or trunc instruction that takes the bottom half of a 16 // instruction, we often have to turn sext/zext/trunc into a series of lane 25 // %r = trunc %add to v8i16 32 // %r = trunc %add to v8i16 177 case Instruction::Trunc: 219 case Intrinsic::trunc: 358 LLVM_DEBUG(dbgs() << "Replacing trunc " << *I << "\n");
|
| ARMParallelDSP.cpp | 785 // Loads[0] needs trunc while Loads[1] needs a lshr and trunc. 794 Value *Trunc = IRB.CreateTrunc(Top, OffsetTy); 795 Value *NewOffsetSExt = IRB.CreateSExt(Trunc, OffsetSExt->getType()); 805 << *Trunc << "\n"
|
| /src/external/apache2/llvm/dist/llvm/lib/Target/WebAssembly/ |
| WebAssemblyFastISel.cpp | 972 const auto *Trunc = cast<TruncInst>(I); 974 unsigned Reg = getRegForValue(Trunc->getOperand(0)); 978 if (Trunc->getOperand(0)->getType()->isIntegerTy(64)) { 986 updateValueMap(Trunc, Reg); 1400 case Instruction::Trunc:
|
| /src/external/apache2/llvm/dist/llvm/lib/Transforms/Vectorize/ |
| LoopVectorize.cpp | 529 /// Widen an integer or floating-point induction variable \p IV. If \p Trunc 532 void widenIntOrFpInduction(PHINode *IV, Value *Start, TruncInst *Trunc, 1433 auto *Trunc = dyn_cast<TruncInst>(I); 1434 if (!Trunc) 1446 Value *Op = Trunc->getOperand(0); 2271 Start = Builder.CreateCast(Instruction::Trunc, Start, TruncType); 2385 TruncInst *Trunc, VPValue *Def, 2399 Instruction *EntryVal = Trunc ? cast<Instruction>(Trunc) : IV; 2430 if (Trunc) { [all...] |
| VPlan.h | 985 TruncInst *Trunc = nullptr) 987 if (Trunc) 988 new VPValue(Trunc, this);
|
| /src/external/apache2/llvm/dist/llvm/include/llvm/CodeGen/ |
| CallingConvLower.h | 47 Trunc, // The value is truncated in the location.
|
| /src/external/apache2/llvm/dist/llvm/lib/Target/SystemZ/ |
| SystemZTargetTransformInfo.cpp | 169 case Instruction::Trunc: 775 if (Opcode == Instruction::Trunc) { 1000 // Load (single use) -> trunc/extend (single use) -> UserI
|
| /src/external/apache2/llvm/dist/llvm/lib/Analysis/ |
| CFLGraph.h | 536 case Instruction::Trunc:
|