Home
last modified time | relevance | path

Searched refs:Trunc (Results 1 – 25 of 146) sorted by relevance

123456

/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DTypePromotion.cpp241 else if (auto *Trunc = dyn_cast<TruncInst>(V)) in isSource() local
242 return EqualTypeSize(Trunc); in isSource()
538 auto *Trunc = dyn_cast<Instruction>(Builder.CreateTrunc(V, TruncTy)); in TruncateSinks() local
539 if (Trunc) in TruncateSinks()
540 NewInsts.insert(Trunc); in TruncateSinks()
541 return Trunc; in TruncateSinks()
554 if (Instruction *Trunc = InsertTrunc(Arg, Ty)) { in TruncateSinks() local
555 Trunc->moveBefore(Call->getIterator()); in TruncateSinks()
556 Call->setArgOperand(i, Trunc); in TruncateSinks()
565 if (Instruction *Trunc = InsertTrunc(Switch->getCondition(), Ty)) { in TruncateSinks() local
[all …]
H A DCodeGenCommonISel.cpp226 MachineInstr &Trunc, in getSalvageOpsForTrunc() argument
228 assert(Trunc.getOpcode() == TargetOpcode::G_TRUNC && "Must be a G_TRUNC"); in getSalvageOpsForTrunc()
230 const auto FromLLT = MRI.getType(Trunc.getOperand(1).getReg()); in getSalvageOpsForTrunc()
231 const auto ToLLT = MRI.getType(Trunc.defs().begin()->getReg()); in getSalvageOpsForTrunc()
241 return &Trunc.getOperand(1); in getSalvageOpsForTrunc()
H A DInterleavedLoadCombinePass.cpp170 Trunc, enumerator
497 pushBOperation(Trunc, APInt(sizeof(n) * 8, n)); in sextOrTrunc()
595 case Trunc: in print()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineCasts.cpp58 case Instruction::Trunc: in EvaluateInDifferentType()
185 (CI.getOpcode() == Instruction::Trunc && in commonCastTransforms()
330 if (auto *Trunc = dyn_cast<TruncInst>(V->user_back())) { in canEvaluateTruncated() local
331 auto DemandedBits = Trunc->getType()->getScalarSizeInBits(); in canEvaluateTruncated()
359 case Instruction::Trunc: in canEvaluateTruncated()
411 static Instruction *foldVecTruncToExtElt(TruncInst &Trunc, in foldVecTruncToExtElt() argument
413 Value *TruncOp = Trunc.getOperand(0); in foldVecTruncToExtElt()
414 Type *DestType = Trunc.getType(); in foldVecTruncToExtElt()
461 static Instruction *foldVecExtTruncToExtElt(TruncInst &Trunc, in foldVecExtTruncToExtElt() argument
463 Value *Src = Trunc.getOperand(0); in foldVecExtTruncToExtElt()
[all …]
H A DInstCombineShifts.cpp72 Value *Trunc = nullptr; in reassociateShiftAmtsOfTwoSameDirectionShifts() local
74 m_CombineOr(m_CombineAnd(m_Trunc(m_Instruction(Sh1)), m_Value(Trunc)), in reassociateShiftAmtsOfTwoSameDirectionShifts()
104 if (Trunc && !AnalyzeForSignBitExtraction && in reassociateShiftAmtsOfTwoSameDirectionShifts()
126 if (HadTwoRightShifts && (Trunc || AnalyzeForSignBitExtraction)) { in reassociateShiftAmtsOfTwoSameDirectionShifts()
150 if (!Trunc) { in reassociateShiftAmtsOfTwoSameDirectionShifts()
164 if (Trunc) { in reassociateShiftAmtsOfTwoSameDirectionShifts()
166 Ret = CastInst::Create(Instruction::Trunc, NewShift, Sh0->getType()); in reassociateShiftAmtsOfTwoSameDirectionShifts()
201 Value *Trunc; in dropRedundantMaskingOfLeftShiftInput() local
202 if (match(Masked, m_CombineAnd(m_Trunc(m_Value(Masked)), m_Value(Trunc))) && in dropRedundantMaskingOfLeftShiftInput()
203 !Trunc->hasOneUse()) in dropRedundantMaskingOfLeftShiftInput()
[all …]
H A DInstCombineInternal.h395 Instruction *narrowBinOp(TruncInst &Trunc);
398 Instruction *narrowFunnelShift(TruncInst &Trunc);
730 Instruction *foldICmpTruncConstant(ICmpInst &Cmp, TruncInst *Trunc,
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DAMDGPURegBankLegalize.cpp154 auto [Trunc, TruncS32Src] = tryMatch(Src, AMDGPU::G_TRUNC); in tryCombineCopy()
155 assert(Trunc && MRI.getType(TruncS32Src) == S32 && in tryCombineCopy()
163 cleanUpAfterCombine(MI, Trunc); in tryCombineCopy()
194 auto [Trunc, TruncSrc] = tryMatch(Src, AMDGPU::G_TRUNC); in tryCombineS1AnyExt()
195 if (!Trunc) in tryCombineS1AnyExt()
203 cleanUpAfterCombine(MI, Trunc); in tryCombineS1AnyExt()
212 cleanUpAfterCombine(MI, Trunc); in tryCombineS1AnyExt()
219 cleanUpAfterCombine(MI, Trunc); in tryCombineS1AnyExt()
225 cleanUpAfterCombine(MI, Trunc); in tryCombineS1AnyExt()
231 cleanUpAfterCombine(MI, Trunc); in tryCombineS1AnyExt()
H A DAMDGPULowerKernelArguments.cpp225 Value *Trunc = Builder.CreateTrunc(ExtractBits, ArgIntTy); in lowerKernelArguments() local
226 Value *NewVal = Builder.CreateBitCast(Trunc, ArgTy, in lowerKernelArguments()
H A DAMDGPULateCodeGenPrepare.cpp263 Instruction *Trunc = cast<Instruction>( in convertFromOptType() local
265 return cast<Instruction>(Builder.CreateBitCast(Trunc, NewVTy)); in convertFromOptType()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/
H A DCombinerHelperCasts.cpp31 GTrunc *Trunc = cast<GTrunc>(getDefIgnoringCopies(Sext->getSrcReg(), MRI)); in matchSextOfTrunc() local
34 Register Src = Trunc->getSrcReg(); in matchSextOfTrunc()
40 if (!Trunc->getFlag(MachineInstr::NoSWrap)) { in matchSextOfTrunc()
47 unsigned TruncWidth = MRI.getType(Trunc->getReg(0)).getScalarSizeInBits(); in matchSextOfTrunc()
84 GTrunc *Trunc = cast<GTrunc>(getDefIgnoringCopies(Zext->getSrcReg(), MRI)); in matchZextOfTrunc() local
87 Register Src = Trunc->getSrcReg(); in matchZextOfTrunc()
140 const GTrunc *Trunc = cast<GTrunc>(&Root); in matchTruncateOfExt() local
146 Register Dst = Trunc->getReg(0); in matchTruncateOfExt()
339 const GTrunc *Trunc = cast<GTrunc>(&TruncMI); in matchNarrowBinop() local
345 Register Dst = Trunc->getReg(0); in matchNarrowBinop()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DIntegerDivision.cpp478 Value *Trunc; in expandRemainderUpTo32Bits() local
490 Trunc = Builder.CreateTrunc(ExtRem, RemTy); in expandRemainderUpTo32Bits()
492 Rem->replaceAllUsesWith(Trunc); in expandRemainderUpTo32Bits()
524 Value *Trunc; in expandRemainderUpTo64Bits() local
536 Trunc = Builder.CreateTrunc(ExtRem, RemTy); in expandRemainderUpTo64Bits()
538 Rem->replaceAllUsesWith(Trunc); in expandRemainderUpTo64Bits()
573 Value *Trunc; in expandDivisionUpTo32Bits() local
585 Trunc = Builder.CreateTrunc(ExtDiv, DivTy); in expandDivisionUpTo32Bits()
587 Div->replaceAllUsesWith(Trunc); in expandDivisionUpTo32Bits()
619 Value *Trunc; in expandDivisionUpTo64Bits() local
[all …]
H A DBypassSlowDivision.cpp292 Builder.CreateCast(Instruction::Trunc, Divisor, BypassType); in createFastBB()
294 Builder.CreateCast(Instruction::Trunc, Dividend, BypassType); in createFastBB()
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVCodeGenPrepare.cpp167 Value *Trunc = Builder.CreateTrunc(WideMerge, II.getType()); in widenVPMerge() local
169 II.replaceAllUsesWith(Trunc); in widenVPMerge()
/freebsd/contrib/llvm-project/llvm/lib/Target/DirectX/
H A DDXILLegalizePass.cpp73 if (auto *Trunc = dyn_cast<TruncInst>(&I)) { in fixI8UseChain() local
74 if (Trunc->getDestTy()->isIntegerTy(8)) { in fixI8UseChain()
75 ReplacedValues[Trunc] = Trunc->getOperand(0); in fixI8UseChain()
76 ToRemove.push_back(Trunc); in fixI8UseChain()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlan.h600 Trunc, enumerator
678 OpType = OperationType::Trunc; in VPIRFlags()
730 case OperationType::Trunc: in dropPoisonGeneratingFlags()
763 case OperationType::Trunc: in applyFlags()
826 case OperationType::Trunc: in hasNoUnsignedWrap()
837 case OperationType::Trunc: in hasNoSignedWrap()
2009 TruncInst *Trunc; variable
2020 Trunc(nullptr) { in VPWidenIntOrFpInductionRecipe()
2026 TruncInst *Trunc, DebugLoc DL) in VPWidenIntOrFpInductionRecipe() argument
2029 Trunc(Trunc) { in VPWidenIntOrFpInductionRecipe()
[all …]
H A DVPlanTransforms.cpp583 BaseIV = Builder.createScalarCast(Instruction::Trunc, BaseIV, TruncTy, DL); in createScalarIVSteps()
597 Step = Builder.createScalarCast(Instruction::Trunc, Step, ResultTy, DL); in createScalarIVSteps()
1043 auto *VPC = new VPWidenCastRecipe(Instruction::Trunc, A, TruncTy); in simplifyRecipe()
1130 X = VPBuilder(Def).createWidenCast(Instruction::Trunc, X, WideStepTy); in simplifyRecipe()
1398 Instruction::Trunc, Plan.getOrCreateBackedgeTakenCount(), NewIVTy); in optimizeVectorInductionWidthForTCAndVFUF()
1869 ? new VPWidenCastRecipe(Instruction::Trunc, Op, NewResTy) in truncateToMinimalBitwidths()
2619 Step = Builder.createScalarCast(Instruction::Trunc, Step, Ty, DL); in expandVPWidenIntOrFpInduction()
2620 Start = Builder.createScalarCast(Instruction::Trunc, Start, Ty, DL); in expandVPWidenIntOrFpInduction()
2732 : Instruction::Trunc; in convertToConcreteRecipes()
2744 Builder.createWidenCast(Instruction::Trunc, ScalarStep, IVTy); in convertToConcreteRecipes()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/AggressiveInstCombine/
H A DTruncInstCombine.cpp51 case Instruction::Trunc: in getRelevantOperands()
127 case Instruction::Trunc: in buildTruncExpressionGraph()
393 case Instruction::Trunc: in ReduceExpressionGraph()
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DLazyValueInfo.cpp399 ValueLatticeElement getValueFromTrunc(Value *Val, TruncInst *Trunc,
905 case Instruction::Trunc: in solveBlockValueCast()
1299 TruncInst *Trunc, in getValueFromTrunc() argument
1301 assert(Trunc->getType()->isIntOrIntVectorTy(1)); in getValueFromTrunc()
1303 if (Trunc->getOperand(0) != Val) in getValueFromTrunc()
1308 if (Trunc->hasNoUnsignedWrap()) { in getValueFromTrunc()
1348 if (auto *Trunc = dyn_cast<TruncInst>(Cond)) in getValueFromCondition() local
1349 return getValueFromTrunc(Val, Trunc, IsTrueDest); in getValueFromCondition()
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/
H A DWebAssemblyFastISel.cpp987 const auto *Trunc = cast<TruncInst>(I); in selectTrunc() local
989 Register Reg = getRegForValue(Trunc->getOperand(0)); in selectTrunc()
993 unsigned FromBitWidth = Trunc->getOperand(0)->getType()->getIntegerBitWidth(); in selectTrunc()
994 unsigned ToBitWidth = Trunc->getType()->getIntegerBitWidth(); in selectTrunc()
1004 updateValueMap(Trunc, Reg); in selectTrunc()
1419 case Instruction::Trunc: in fastSelectInstruction()
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/
H A DARMParallelDSP.cpp790 Value *Trunc = IRB.CreateTrunc(Top, OffsetTy); in CreateWideLoad() local
791 Value *NewOffsetSExt = IRB.CreateSExt(Trunc, OffsetSExt->getType()); in CreateWideLoad()
801 << *Trunc << "\n" in CreateWideLoad()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DSpeculativeExecution.cpp248 case Instruction::Trunc: in ComputeSpeculationCost()
H A DConstraintElimination.cpp594 } else if (auto *Trunc = dyn_cast<TruncInst>(V)) { in decompose() local
595 if (Trunc->getSrcTy()->getScalarSizeInBits() <= 64) { in decompose()
596 if (Trunc->hasNoUnsignedWrap() || Trunc->hasNoSignedWrap()) { in decompose()
597 V = Trunc->getOperand(0); in decompose()
598 if (!Trunc->hasNoUnsignedWrap()) in decompose()
/freebsd/contrib/llvm-project/llvm/include/llvm/SandboxIR/
H A DValues.def125 OP(Trunc) \
/freebsd/contrib/llvm-project/llvm/lib/IR/
H A DOperator.cpp30 case Instruction::Trunc: { in hasPoisonGeneratingFlags()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/SandboxVectorizer/
H A DLegality.cpp88 case Instruction::Opcode::Trunc: in notVectorizableBasedOnOpcodesAndTypes()

123456