/freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/ |
H A D | SPIRVLegalizerInfo.cpp | 63 const LLT s1 = LLT::scalar(1); in SPIRVLegalizerInfo() 64 const LLT s8 = LLT::scalar(8); in SPIRVLegalizerInfo() 65 const LLT s16 = LLT::scalar(16); in SPIRVLegalizerInfo() 66 const LLT s32 = LLT::scalar(32); in SPIRVLegalizerInfo() 67 const LLT s64 = LLT::scalar(64); in SPIRVLegalizerInfo() 69 const LLT v16s64 = LLT::fixed_vector(16, 64); in SPIRVLegalizerInfo() 70 const LLT v16s32 = LLT::fixed_vector(16, 32); in SPIRVLegalizerInfo() 71 const LLT v16s16 = LLT::fixed_vector(16, 16); in SPIRVLegalizerInfo() 72 const LLT v16s8 = LLT::fixed_vector(16, 8); in SPIRVLegalizerInfo() 73 const LLT v16s1 = LLT::fixed_vector(16, 1); in SPIRVLegalizerInfo() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGenTypes/ |
H A D | LowLevelType.cpp | 19 LLT::LLT(MVT VT) { in LLT() function in LLT 38 void LLT::print(raw_ostream &OS) const { in print() 52 LLVM_DUMP_METHOD void LLT::dump() const { in dump() 58 const constexpr LLT::BitFieldInfo LLT::ScalarSizeFieldInfo; 59 const constexpr LLT::BitFieldInfo LLT::PointerSizeFieldInfo; 60 const constexpr LLT::BitFieldInfo LLT::PointerAddressSpaceFieldInfo; 61 const constexpr LLT::BitFieldInfo LLT::VectorElementsFieldInfo; 62 const constexpr LLT::BitFieldInfo LLT::VectorScalableFieldInfo; 63 const constexpr LLT::BitFieldInfo LLT::VectorSizeFieldInfo; 64 const constexpr LLT::BitFieldInfo LLT::PointerVectorElementsFieldInfo; [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/ |
H A D | LegalizerHelper.h | 102 LegalizeResult narrowScalar(MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy); 107 LegalizeResult widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy); 110 LegalizeResult bitcast(MachineInstr &MI, unsigned TypeIdx, LLT Ty); 114 LegalizeResult lower(MachineInstr &MI, unsigned TypeIdx, LLT Ty); 119 LLT NarrowTy); 124 LLT MoreTy); 137 void widenScalarSrc(MachineInstr &MI, LLT WideTy, unsigned OpIdx, 143 void narrowScalarSrc(MachineInstr &MI, LLT NarrowTy, unsigned OpIdx); 148 void widenScalarDst(MachineInstr &MI, LLT WideTy, unsigned OpIdx = 0, 154 void narrowScalarDst(MachineInstr &MI, LLT NarrowTy, unsigned OpIdx, [all …]
|
H A D | LegalizerInfo.h | 111 ArrayRef<LLT> Types; 114 LLT MemoryTy; 119 MemDesc(LLT MemoryTy, uint64_t AlignInBits, AtomicOrdering Ordering) in MemDesc() 131 constexpr LegalityQuery(unsigned Opcode, const ArrayRef<LLT> Types, in LegalityQuery() 134 constexpr LegalityQuery(unsigned Opcode, const ArrayRef<LLT> Types) in LegalityQuery() 149 LLT NewType; 152 const LLT NewType) in LegalizeActionStep() 202 std::function<std::pair<unsigned, LLT>(const LegalityQuery &)>; 206 LLT Type0; 207 LLT Type1; [all …]
|
H A D | Utils.h | 254 void extractParts(Register Reg, LLT Ty, int NumParts, 259 bool extractParts(Register Reg, LLT RegTy, LLT MainTy, LLT &LeftoverTy, 299 std::optional<APInt> ConstantFoldCastOp(unsigned Opcode, LLT DstTy, 307 std::optional<APFloat> ConstantFoldIntToFloat(unsigned Opcode, LLT DstTy, 350 const DebugLoc &DL, LLT RegTy = LLT()); 360 LLT getLCMType(LLT OrigTy, LLT TargetTy); 365 LLT getCoverTy(LLT OrigTy, LLT TargetTy); 384 LLT getGCDType(LLT OrigTy, LLT TargetTy); 590 Type *getTypeForLLT(LLT Ty, LLVMContext &C);
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGenTypes/ |
H A D | LowLevelType.h | 39 class LLT { 42 static constexpr LLT scalar(unsigned SizeInBits) { in scalar() 43 return LLT{/*isPointer=*/false, /*isVector=*/false, /*isScalar=*/true, in scalar() 49 static constexpr LLT token() { in token() 50 return LLT{/*isPointer=*/false, /*isVector=*/false, in token() 57 static constexpr LLT pointer(unsigned AddressSpace, unsigned SizeInBits) { in pointer() 59 return LLT{/*isPointer=*/true, /*isVector=*/false, /*isScalar=*/false, in pointer() 64 static constexpr LLT vector(ElementCount EC, unsigned ScalarSizeInBits) { in vector() 66 return LLT{/*isPointer=*/false, /*isVector=*/true, /*isScalar=*/false, in vector() 71 static constexpr LLT vector(ElementCount EC, LLT ScalarTy) { in vector() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/GISel/ |
H A D | PPCLegalizerInfo.cpp | 25 const LLT QueryTy = Query.Types[TypeIdx]; in isRegisterType() 43 const LLT P0 = LLT::pointer(0, 64); in PPCLegalizerInfo() 44 const LLT S1 = LLT::scalar(1); in PPCLegalizerInfo() 45 const LLT S8 = LLT::scalar(8); in PPCLegalizerInfo() 46 const LLT S16 = LLT::scalar(16); in PPCLegalizerInfo() 47 const LLT S32 = LLT::scalar(32); in PPCLegalizerInfo() 48 const LLT S64 = LLT::scalar(64); in PPCLegalizerInfo() 49 const LLT V16S8 = LLT::fixed_vector(16, 8); in PPCLegalizerInfo() 50 const LLT V8S16 = LLT::fixed_vector(8, 16); in PPCLegalizerInfo() 51 const LLT V4S32 = LLT::fixed_vector(4, 32); in PPCLegalizerInfo() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/GISel/ |
H A D | RISCVLegalizerInfo.cpp | 46 std::initializer_list<LLT> IntOrFPVecTys, in typeIsLegalIntOrFPVec() 60 typeIsLegalBoolVec(unsigned TypeIdx, std::initializer_list<LLT> BoolVecTys, in typeIsLegalBoolVec() 71 : STI(ST), XLen(STI.getXLen()), sXLen(LLT::scalar(XLen)) { in RISCVLegalizerInfo() 72 const LLT sDoubleXLen = LLT::scalar(2 * XLen); in RISCVLegalizerInfo() 73 const LLT p0 = LLT::pointer(0, XLen); in RISCVLegalizerInfo() 74 const LLT s1 = LLT::scalar(1); in RISCVLegalizerInfo() 75 const LLT s8 = LLT::scalar(8); in RISCVLegalizerInfo() 76 const LLT s16 = LLT::scalar(16); in RISCVLegalizerInfo() 77 const LLT s32 = LLT::scalar(32); in RISCVLegalizerInfo() 78 const LLT s64 = LLT::scalar(64); in RISCVLegalizerInfo() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/ |
H A D | X86LegalizerInfo.cpp |
|
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/GISel/ |
H A D | X86LegalizerInfo.cpp | 47 const LLT p0 = LLT::pointer(0, TM.getPointerSizeInBits(0)); in X86LegalizerInfo() 48 const LLT s1 = LLT::scalar(1); in X86LegalizerInfo() 49 const LLT s8 = LLT::scalar(8); in X86LegalizerInfo() 50 const LLT s16 = LLT::scalar(16); in X86LegalizerInfo() 51 const LLT s32 = LLT::scalar(32); in X86LegalizerInfo() 52 const LLT s64 = LLT::scalar(64); in X86LegalizerInfo() 53 const LLT s80 = LLT::scalar(80); in X86LegalizerInfo() 54 const LLT s128 = LLT::scalar(128); in X86LegalizerInfo() 55 const LLT sMaxScalar = Subtarget.is64Bit() ? s64 : s32; in X86LegalizerInfo() 56 const LLT v2s32 = LLT::fixed_vector(2, 32); in X86LegalizerInfo() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | AMDGPULegalizerInfo.cpp | 56 static LLT getPow2VectorType(LLT Ty) { in getPow2VectorType() 63 static LLT getPow2ScalarType(LLT Ty) { in getPow2ScalarType() 66 return LLT::scalar(Pow2Bits); in getPow2ScalarType() 74 const LLT Ty = Query.Types[TypeIdx]; in isSmallOddVector() 78 const LLT EltTy = Ty.getElementType(); in isSmallOddVector() 88 const LLT Ty = Query.Types[TypeIdx]; in sizeIsMultipleOf32() 95 const LLT Ty = Query.Types[TypeIdx]; in isWideVec16() 96 const LLT EltTy = Ty.getScalarType(); in isWideVec16() 103 const LLT Ty = Query.Types[TypeIdx]; in oneMoreElement() 104 const LLT EltTy = Ty.getElementType(); in oneMoreElement() [all …]
|
H A D | AMDGPUArgumentUsageInfo.cpp | 90 std::tuple<const ArgDescriptor *, const TargetRegisterClass *, LLT> 96 &AMDGPU::SGPR_128RegClass, LLT::fixed_vector(4, 32)); in getPreloadedValue() 101 LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64)); in getPreloadedValue() 104 &AMDGPU::SGPR_32RegClass, LLT::scalar(32)); in getPreloadedValue() 107 &AMDGPU::SGPR_32RegClass, LLT::scalar(32)); in getPreloadedValue() 110 &AMDGPU::SGPR_32RegClass, LLT::scalar(32)); in getPreloadedValue() 113 &AMDGPU::SGPR_32RegClass, LLT::scalar(32)); in getPreloadedValue() 117 &AMDGPU::SGPR_32RegClass, LLT::scalar(32)); in getPreloadedValue() 120 &AMDGPU::SGPR_32RegClass, LLT::scalar(32)}; in getPreloadedValue() 124 LLT::pointer(AMDGPUAS::CONSTANT_ADDRESS, 64)); in getPreloadedValue() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/ |
H A D | LegalizeMutations.cpp | 17 LegalizeMutation LegalizeMutations::changeTo(unsigned TypeIdx, LLT Ty) { in changeTo() 32 const LLT OldTy = Query.Types[TypeIdx]; in changeElementTo() 33 const LLT NewTy = Query.Types[FromTypeIdx]; in changeElementTo() 39 LLT NewEltTy) { in changeElementTo() 41 const LLT OldTy = Query.Types[TypeIdx]; in changeElementTo() 49 const LLT OldTy = Query.Types[TypeIdx]; in changeElementCountTo() 50 const LLT NewTy = Query.Types[FromTypeIdx]; in changeElementCountTo() 58 LLT NewEltTy) { in changeElementCountTo() 60 const LLT OldTy = Query.Types[TypeIdx]; in changeElementCountTo() 70 const LLT OldTy = Query.Types[TypeIdx]; in changeElementSizeTo() [all …]
|
H A D | LegalityPredicates.cpp | 28 LegalityPredicate LegalityPredicates::typeIs(unsigned TypeIdx, LLT Type) { in typeIs() 35 std::initializer_list<LLT> TypesInit) { in typeInSet() 36 SmallVector<LLT, 4> Types = TypesInit; in typeInSet() 44 std::initializer_list<std::pair<LLT, LLT>> TypesInit) { in typePairInSet() argument 45 SmallVector<std::pair<LLT, LLT>, 4> Types = TypesInit; in typePairInSet() 47 std::pair<LLT, LLT> Match = {Query.Types[TypeIdx0], Query.Types[TypeIdx1]}; in typePairInSet() 88 LLT Ty = Query.Types[TypeIdx]; in isPointer() 94 LLT EltTy) { in elementTypeIs() 96 const LLT QueryTy = Query.Types[TypeIdx]; in elementTypeIs() 104 const LLT QueryTy = Query.Types[TypeIdx]; in scalarNarrowerThan() [all …]
|
H A D | CallLowering.cpp | 162 LLT Ty = getLLTForType(*F->getType(), DL); in lowerCall() 330 LLT LLTy = MRI.getType(DstRegs[0]); in mergeVectorRegsToResultRegs() 331 LLT PartLLT = MRI.getType(SrcRegs[0]); in mergeVectorRegsToResultRegs() 334 LLT LCMTy = getCoverTy(LLTy, PartLLT); in mergeVectorRegsToResultRegs() 374 ArrayRef<Register> Regs, LLT LLTy, LLT PartLLT, in buildCopyFromRegs() 400 LLT LocTy = MRI.getType(SrcReg); in buildCopyFromRegs() 411 LLT OrigTy = MRI.getType(OrigRegs[0]); in buildCopyFromRegs() 413 LLT IntPtrTy = LLT::scalar(OrigTy.getSizeInBits()); in buildCopyFromRegs() 424 LLT OrigTy = MRI.getType(OrigRegs[0]); in buildCopyFromRegs() 430 auto Widened = B.buildMergeLikeInstr(LLT::scalar(SrcSize), Regs); in buildCopyFromRegs() [all …]
|
H A D | LegalizerHelper.cpp | 56 getNarrowTypeBreakDown(LLT OrigTy, LLT NarrowTy, LLT &LeftoverTy) { in getNarrowTypeBreakDown() 73 LLT::scalarOrVector(ElementCount::getFixed(LeftoverSize / EltSize), in getNarrowTypeBreakDown() 76 LeftoverTy = LLT::scalar(LeftoverSize); in getNarrowTypeBreakDown() 83 static Type *getFloatTypeForLLT(LLVMContext &Ctx, LLT Ty) { in getFloatTypeForLLT() 163 LLT ResultTy, LLT PartTy, in insertParts() 165 LLT LeftoverTy, in insertParts() 192 LLT GCDTy = getGCDType(getGCDType(ResultTy, LeftoverTy), PartTy); in insertParts() 195 LLT ResultLCMTy = buildLCMMergePieces(ResultTy, LeftoverTy, GCDTy, GCDRegs); in insertParts() 201 LLT Ty = MRI.getType(Reg); in appendVectorElts() 237 LLT GCDTy, Register SrcReg) { in extractGCDType() [all …]
|
H A D | MachineIRBuilder.cpp | 178 MachineInstrBuilder MachineIRBuilder::buildJumpTable(const LLT PtrTy, in buildJumpTable() 184 void MachineIRBuilder::validateUnaryOp(const LLT Res, const LLT Op0) { in validateUnaryOp() 189 void MachineIRBuilder::validateBinaryOp(const LLT Res, const LLT Op0, in validateBinaryOp() 190 const LLT Op1) { in validateBinaryOp() 195 void MachineIRBuilder::validateShiftOp(const LLT Res, const LLT Op0, in validateShiftOp() 196 const LLT Op1) { in validateShiftOp() 213 const LLT ValueTy, uint64_t Value) { in materializePtrAdd() 230 LLT PtrTy = Res.getLLTTy(*getMRI()); in buildMaskLowPtrBits() 231 LLT MaskTy = LLT::scalar(PtrTy.getSizeInBits()); in buildMaskLowPtrBits() 240 LLT ResTy = Res.getLLTTy(*getMRI()); in buildPadVectorWithUndefElements() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | LowLevelTypeUtils.cpp | 20 LLT llvm::getLLTForType(Type &Ty, const DataLayout &DL) { in getLLTForType() 23 LLT ScalarTy = getLLTForType(*VTy->getElementType(), DL); in getLLTForType() 26 return LLT::vector(EC, ScalarTy); in getLLTForType() 31 return LLT::pointer(AddrSpace, DL.getPointerSizeInBits(AddrSpace)); in getLLTForType() 39 return LLT::scalar(SizeInBits); in getLLTForType() 43 return LLT::token(); in getLLTForType() 45 return LLT(); in getLLTForType() 48 MVT llvm::getMVTForLLT(LLT Ty) { in getMVTForLLT() 57 EVT llvm::getApproximateEVTForLLT(LLT Ty, const DataLayout &DL, in getApproximateEVTForLLT() 67 LLT llvm::getLLTForMVT(MVT Ty) { in getLLTForMVT() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/GISel/ |
H A D | AArch64LegalizerInfo.cpp | 46 const LLT p0 = LLT::pointer(0, 64); in AArch64LegalizerInfo() 47 const LLT s8 = LLT::scalar(8); in AArch64LegalizerInfo() 48 const LLT s16 = LLT::scalar(16); in AArch64LegalizerInfo() 49 const LLT s32 = LLT::scalar(32); in AArch64LegalizerInfo() 50 const LLT s64 = LLT::scalar(64); in AArch64LegalizerInfo() 51 const LLT s128 = LLT::scalar(128); in AArch64LegalizerInfo() 52 const LLT v16s8 = LLT::fixed_vector(16, 8); in AArch64LegalizerInfo() 53 const LLT v8s8 = LLT::fixed_vector(8, 8); in AArch64LegalizerInfo() 54 const LLT v4s8 = LLT::fixed_vector(4, 8); in AArch64LegalizerInfo() 55 const LLT v2s8 = LLT::fixed_vector(2, 8); in AArch64LegalizerInfo() [all …]
|
H A D | AArch64PreLegalizerCombiner.cpp | 85 LLT LHSTy = MRI.getType(LHS); in matchICmpRedundantTrunc() 96 LLT WideTy = MRI.getType(WideReg); in matchICmpRedundantTrunc() 110 LLT WideTy = MRI.getType(WideReg); in applyICmpRedundantTrunc() 229 B.buildConstant(LLT::scalar(64), -static_cast<int64_t>(MinOffset))); in applyFoldGlobalOffset() 245 LLT DstTy = MRI.getType(DstReg); in matchExtAddvToUdotAddv() 246 LLT MidTy = MRI.getType(MidReg); in matchExtAddvToUdotAddv() 250 LLT SrcTy; in matchExtAddvToUdotAddv() 262 LLT Ext1DstTy = MRI.getType(ExtMI1->getOperand(0).getReg()); in matchExtAddvToUdotAddv() 263 LLT Ext2DstTy = MRI.getType(ExtMI2->getOperand(0).getReg()); in matchExtAddvToUdotAddv() 315 LLT SrcTy = MRI.getType(Ext1SrcReg); in applyExtAddvToUdotAddv() [all …]
|
H A D | AArch64InstructionSelector.cpp | 194 bool tryOptConstantBuildVec(MachineInstr &MI, LLT DstTy, 321 const RegisterBank &DstRB, LLT ScalarTy, 571 getRegClassForTypeOnBank(LLT Ty, const RegisterBank &RB, in getRegClassForTypeOnBank() 771 LLT Ty = MRI.getType(I.getOperand(0).getReg()); in unsupportedBinOp() 987 LLT Ty = MRI.getType(Reg); in selectDebugInstr() 1097 static unsigned selectFPConvOpc(unsigned GenericOpc, LLT DstTy, LLT SrcTy) { in selectFPConvOpc() 1181 LLT Ty = MRI.getType(True); in emitSelect() 1597 LLT Ty = MRI.getType(TestReg); in emitTestBit() 1838 MIB.buildInstr(AArch64::ANDSWri, {LLT::scalar(32)}, {CondReg}).addImm(1); in selectCompareBranch() 1858 static std::optional<int64_t> getVectorSHLImm(LLT SrcTy, Register Reg, in getVectorSHLImm() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/M68k/GISel/ |
H A D | M68kLegalizerInfo.cpp | 24 const LLT s8 = LLT::scalar(8); in M68kLegalizerInfo() 25 const LLT s16 = LLT::scalar(16); in M68kLegalizerInfo() 26 const LLT s32 = LLT::scalar(32); in M68kLegalizerInfo() 27 const LLT p0 = LLT::pointer(0, 32); in M68kLegalizerInfo()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/ |
H A D | ARMRegisterBankInfo.cpp | 175 LLT) const { in getRegBankFromRegClass() 235 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in getInstrMapping() 270 LLT LargeTy = MRI.getType(MI.getOperand(1).getReg()); in getInstrMapping() 280 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in getInstrMapping() 293 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in getInstrMapping() 300 LLT Ty = MRI.getType(MI.getOperand(0).getReg()); in getInstrMapping() 314 LLT ToTy = MRI.getType(MI.getOperand(0).getReg()); in getInstrMapping() 315 LLT FromTy = MRI.getType(MI.getOperand(1).getReg()); in getInstrMapping() 323 LLT ToTy = MRI.getType(MI.getOperand(0).getReg()); in getInstrMapping() 324 LLT FromTy = MRI.getType(MI.getOperand(1).getReg()); in getInstrMapping() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/Mips/ |
H A D | MipsLegalizerInfo.cpp | 23 LLT ValTy; 24 LLT PtrTy; 64 std::initializer_list<LLT> SupportedValues) { in CheckTyN() 71 const LLT s1 = LLT::scalar(1); in MipsLegalizerInfo() 72 const LLT s8 = LLT::scalar(8); in MipsLegalizerInfo() 73 const LLT s16 = LLT::scalar(16); in MipsLegalizerInfo() 74 const LLT s32 = LLT::scalar(32); in MipsLegalizerInfo() 75 const LLT s64 = LLT::scalar(64); in MipsLegalizerInfo() 76 const LLT v16s8 = LLT::fixed_vector(16, 8); in MipsLegalizerInfo() 77 const LLT v8s16 = LLT::fixed_vector(8, 16); in MipsLegalizerInfo() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | LowLevelTypeUtils.h | 29 LLT getLLTForType(Type &Ty, const DataLayout &DL); 33 MVT getMVTForLLT(LLT Ty); 34 EVT getApproximateEVTForLLT(LLT Ty, const DataLayout &DL, LLVMContext &Ctx); 38 LLT getLLTForMVT(MVT Ty); 42 const llvm::fltSemantics &getFltSemanticForLLT(LLT Ty);
|