| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | TypePromotion.cpp | 241 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 D | CodeGenCommonISel.cpp | 226 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 D | InterleavedLoadCombinePass.cpp | 170 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 D | InstCombineCasts.cpp | 58 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 D | InstCombineShifts.cpp | 72 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 D | InstCombineInternal.h | 395 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 D | AMDGPURegBankLegalize.cpp | 154 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 D | AMDGPULowerKernelArguments.cpp | 225 Value *Trunc = Builder.CreateTrunc(ExtractBits, ArgIntTy); in lowerKernelArguments() local 226 Value *NewVal = Builder.CreateBitCast(Trunc, ArgTy, in lowerKernelArguments()
|
| H A D | AMDGPULateCodeGenPrepare.cpp | 263 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 D | CombinerHelperCasts.cpp | 31 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 D | IntegerDivision.cpp | 478 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 D | BypassSlowDivision.cpp | 292 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 D | RISCVCodeGenPrepare.cpp | 167 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 D | DXILLegalizePass.cpp | 73 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 D | VPlan.h | 600 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 D | VPlanTransforms.cpp | 583 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 D | TruncInstCombine.cpp | 51 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 D | LazyValueInfo.cpp | 399 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 D | WebAssemblyFastISel.cpp | 987 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 D | ARMParallelDSP.cpp | 790 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 D | SpeculativeExecution.cpp | 248 case Instruction::Trunc: in ComputeSpeculationCost()
|
| H A D | ConstraintElimination.cpp | 594 } 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 D | Values.def | 125 OP(Trunc) \
|
| /freebsd/contrib/llvm-project/llvm/lib/IR/ |
| H A D | Operator.cpp | 30 case Instruction::Trunc: { in hasPoisonGeneratingFlags()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/SandboxVectorizer/ |
| H A D | Legality.cpp | 88 case Instruction::Opcode::Trunc: in notVectorizableBasedOnOpcodesAndTypes()
|