| /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/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...] |
| /src/external/apache2/llvm/dist/llvm/lib/Analysis/ |
| ScalarEvolution.cpp | 212 cl::desc("Maximum depth of recursive SExt/ZExt/Trunc"), 264 const SCEVTruncateExpr *Trunc = cast<SCEVTruncateExpr>(this); 265 const SCEV *Op = Trunc->getOperand(); 266 OS << "(trunc " << *Op->getType() << " " << *Op << " to " 267 << *Trunc->getType() << ")"; 997 MultiplyFactor = MultiplyFactor.trunc(W); 1052 // Since the operand is an integer already, just perform zext/trunc/self cast. 1196 // trunc(trunc(x)) --> trunc(x [all...] |
| InstructionSimplify.cpp | 699 // As that strip may trace through `addrspacecast`, need to sext or trunc 824 // trunc(X) - trunc(Y) -> trunc(X - Y) if everything simplifies. 830 // It does! Now see if "trunc V" simplifies. 831 if (Value *W = SimplifyCastInst(Instruction::Trunc, V, Op0->getType(), 833 // It does, return the simplified "trunc V". 3445 Constant *Trunc = ConstantExpr::getTrunc(CI, SrcTy); 3446 Constant *RExt = ConstantExpr::getCast(CastInst::ZExt, Trunc, DstTy); 3452 SrcOp, Trunc, Q, MaxRecurse-1) [all...] |
| /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/CodeGen/ |
| InterleavedLoadCombinePass.cpp | 171 Trunc, 497 A = A.trunc(n); 498 pushBOperation(Trunc, APInt(sizeof(n) * 8, n)); 596 case Trunc: 597 OS << "Trunc ";
|
| 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...] |
| AtomicExpandPass.cpp | 695 Value *Trunc = Builder.CreateTrunc(Shift, PMV.ValueType, "extracted"); 696 return Trunc; 873 // %FinalOldVal = trunc i32 %tmp1 to i8
|
| /src/external/apache2/llvm/dist/llvm/lib/Target/ARM/ |
| 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/Mips/ |
| MipsInstructionSelector.cpp | 612 if (!materialize32BitImm(GPRRegHigh, APImm.getHiBits(32).trunc(32), B)) 614 if (!materialize32BitImm(GPRRegLow, APImm.getLoBits(32).trunc(32), B)) 651 MachineInstr *Trunc = BuildMI(MBB, I, I.getDebugLoc(), TII.get(Opcode)) 654 if (!constrainSelectedInstRegOperands(*Trunc, TII, TRI, RBI))
|
| MipsISelLowering.cpp | 2821 SDValue Trunc = DAG.getNode(MipsISD::TruncIntFP, SDLoc(Op), FPTy, 2823 return DAG.getNode(ISD::BITCAST, SDLoc(Op), Op.getValueType(), 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...] |
| SimplifyIndVar.cpp | 523 // icmp <pred> i32 trunc(iv), n 525 // icmp <pred> i64 sext(trunc(iv)), sext(n), if pred is signed predicate. 527 // icmp <pred> i64 zext(trunc(iv)), zext(n), if pred is unsigned predicate. 530 // If we can prove that iv == sext(trunc(iv)) or iv == zext(trunc(iv)) for 531 // every comparison which uses trunc, it means that we can replace each of 532 // them with comparison of iv against sext/zext(n). We no longer need trunc 537 // trunc instruction will stay in the loop. 543 // Check if iv == zext(trunc(iv)) and if iv == sext(trunc(iv)). If so, we ca [all...] |
| /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/InstCombine/ |
| 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...] |
| 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...] |
| 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...] |
| InstCombineCompares.cpp | 1287 Value *TruncA = Builder.CreateTrunc(A, NewType, A->getName() + ".trunc"); 1288 Value *TruncB = Builder.CreateTrunc(B, NewType, B->getName() + ".trunc"); 1518 /// Fold icmp (trunc X, Y), C. 1520 TruncInst *Trunc, 1523 Value *X = Trunc->getOperand(0); 1525 // icmp slt trunc(signum(V)) 1 --> icmp slt V, 1 1532 unsigned DstBits = Trunc->getType()->getScalarSizeInBits(), 1534 if (Cmp.isEquality() && Trunc->hasOneUse()) { 1535 // Simplify icmp eq (trunc x to i8), 42 -> icmp eq x, 42|highbits if all 1549 // trunc iN (ShOp >> ShAmtC) to i[N - ShAmtC] < 0 --> ShOp < [all...] |
| /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...] |
| /src/external/apache2/llvm/dist/llvm/lib/Target/Hexagon/ |
| HexagonVectorCombine.cpp | 1052 Value *Trunc = Builder.CreateTrunc(Shift, Type::getInt32Ty(F.getContext())); 1053 return Builder.CreateBitCast(Trunc, Hi->getType()); 1084 Value *Trunc = Builder.CreateTrunc(Shift, Type::getInt32Ty(F.getContext())); 1085 return Builder.CreateBitCast(Trunc, Lo->getType()); 1176 // -> trunc to <M x i1>.
|
| /src/external/apache2/llvm/dist/llvm/lib/Target/SystemZ/ |
| SystemZISelDAGToDAG.cpp | 646 SDValue Trunc = CurDAG->getNode(ISD::TRUNCATE, DL, VT, Base); 647 insertDAGNode(CurDAG, Base.getNode(), Trunc); 648 Base = Trunc;
|
| /src/external/apache2/llvm/dist/llvm/lib/Target/NVPTX/ |
| NVPTXISelLowering.cpp | 443 // Turn FP truncstore into trunc + store. 2202 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, DL, MVT::i1, Select); 2204 return Trunc; 2230 // v = trunc i16 to i1
|
| /src/external/apache2/llvm/dist/llvm/bindings/go/llvm/ |
| ir.go | 169 Trunc Opcode = C.LLVMTrunc
|
| /src/external/apache2/llvm/dist/llvm/lib/CodeGen/SelectionDAG/ |
| TargetLowering.cpp | 1861 APInt MaskLo = DemandedBits.getLoBits(HalfBitWidth).trunc(HalfBitWidth); 1862 APInt MaskHi = DemandedBits.getHiBits(HalfBitWidth).trunc(HalfBitWidth); 1902 APInt InDemandedBits = DemandedBits.trunc(InBits); 1940 APInt InDemandedBits = DemandedBits.trunc(InBits); 1985 APInt InDemandedBits = DemandedBits.trunc(InBits); 2010 Known = Known.trunc(BitWidth); 2040 HighBits = HighBits.trunc(BitWidth); 2092 DemandedSrcBits = DemandedSrcBits.trunc(EltBitWidth); 3080 CVal = CVal.trunc(BVEltWidth); 3207 /// We will unfold it into the natural trunc+sext pattern [all...] |