HomeSort by: relevance | last modified time | path
    Searched defs:Trunc (Results 1 - 25 of 33) sorted by relevancy

1 2

  /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...]

Completed in 160 milliseconds

1 2