/freebsd/contrib/llvm-project/llvm/lib/Target/X86/ |
H A D | X86InstrFragmentsSIMD.td | 28 def load_mmx : PatFrag<(ops node:$ptr), (x86mmx (load node:$ptr))>; 817 def loadv8f16 : PatFrag<(ops node:$ptr), (v8f16 (load node:$ptr))>; 818 def loadv8bf16 : PatFrag<(ops node:$ptr), (v8bf16 (load node:$ptr))>; 819 def loadv4f32 : PatFrag<(ops node:$ptr), (v4f32 (load node:$ptr))>; 820 def loadv2f64 : PatFrag<(ops node:$ptr), (v2f64 (load node:$ptr))>; 821 def loadv2i64 : PatFrag<(ops node:$ptr), (v2i64 (load node:$ptr))>; 822 def loadv4i32 : PatFrag<(ops node:$ptr), (v4i32 (load node:$ptr))>; 823 def loadv8i16 : PatFrag<(ops node:$ptr), (v8i16 (load node:$ptr))>; 824 def loadv16i8 : PatFrag<(ops node:$ptr), (v16i8 (load node:$ptr))>; 827 def loadv16f16 : PatFrag<(ops node:$ptr), (v16f16 (load node:$ptr))>; [all …]
|
H A D | X86InstrFragments.td | 501 def loadi8 : PatFrag<(ops node:$ptr), (i8 (unindexedload node:$ptr)), [{ 510 def loadi16 : PatFrag<(ops node:$ptr), (i16 (unindexedload node:$ptr)), [{ 520 def loadi32 : PatFrag<(ops node:$ptr), (i32 (unindexedload node:$ptr)), [{ 530 def loadi64 : PatFrag<(ops node:$ptr), (i64 (load node:$ptr))>; 531 def loadf16 : PatFrag<(ops node:$ptr), (f16 (load node:$ptr))>; 532 def loadf32 : PatFrag<(ops node:$ptr), (f32 (load node:$ptr))>; 533 def loadf64 : PatFrag<(ops node:$ptr), (f64 (load node:$ptr))>; 534 def loadf80 : PatFrag<(ops node:$ptr), (f80 (load node:$ptr))>; 535 def loadf128 : PatFrag<(ops node:$ptr), (f128 (load node:$ptr))>; 536 def alignedloadf128 : PatFrag<(ops node:$ptr), (f128 (load node:$ptr)), [{ [all …]
|
H A D | X86InstrFMA.td | 37 ValueType VT, X86MemOperand x86memop, PatFrag MemFrag, 57 ValueType VT, X86MemOperand x86memop, PatFrag MemFrag, 77 ValueType VT, X86MemOperand x86memop, PatFrag MemFrag, 102 PatFrag MemFrag128, PatFrag MemFrag256, 334 RegisterClass RC, PatFrag mem_frag> { 392 PatFrag mem_frag, X86FoldableSchedWrite sched> { 468 PatFrag ld_frag128, PatFrag ld_frag256, 599 PatFrag mem_frag> {
|
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/ |
H A D | SystemZOperators.td | 475 def z_loadbswap16 : PatFrag<(ops node:$addr), (z_loadbswap node:$addr), [{ 478 def z_loadbswap32 : PatFrag<(ops node:$addr), (z_loadbswap node:$addr), [{ 481 def z_loadbswap64 : PatFrag<(ops node:$addr), (z_loadbswap node:$addr), [{ 485 def z_storebswap16 : PatFrag<(ops node:$src, node:$addr), 489 def z_storebswap32 : PatFrag<(ops node:$src, node:$addr), 493 def z_storebswap64 : PatFrag<(ops node:$src, node:$addr), 500 : PatFrag<(ops node:$valid, node:$mask, node:$bb), 503 : PatFrag<(ops node:$true, node:$false, node:$valid, node:$mask), 506 def z_ipm : PatFrag<(ops), (z_ipm_1 CC)>; 507 def z_addcarry : PatFrag<(ops node:$lhs, node:$rhs), [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | AMDGPUInstructions.td | 171 class HasOneUseUnaryOp<SDPatternOperator op> : PatFrag< 177 class HasOneUseBinOp<SDPatternOperator op> : PatFrag< 183 class HasOneUseTernaryOp<SDPatternOperator op> : PatFrag< 189 class is_canonicalized_1<SDPatternOperator op> : PatFrag< 207 class is_canonicalized_2<SDPatternOperator op> : PatFrag< 228 class FoldTernaryOpPat<SDPatternOperator op1, SDPatternOperator op2> : PatFrag< 274 def csh_mask_16 : PatFrag<(ops node:$src0), (and node:$src0, imm), 279 def csh_mask_32 : PatFrag<(ops node:$src0), (and node:$src0, imm), 284 def csh_mask_64 : PatFrag<(ops node:$src0), (and node:$src0, imm), 296 def clshl_rev_#width : PatFrag <(ops node:$src0, node:$src1), [all …]
|
H A D | SIInstrInfo.td | 208 def "_noret" : PatFrag< 248 def SIbuffer_atomic_cmpswap_noret : PatFrag< 325 // This is for SDNodes and PatFrag for local loads and stores to 341 def unindexedload_glue : PatFrag <(ops node:$ptr), (AMDGPUld_glue node:$ptr)> { 346 def load_glue : PatFrag <(ops node:$ptr), (unindexedload_glue node:$ptr)> { 351 def atomic_load_8_glue : PatFrag<(ops node:$ptr), 357 def atomic_load_16_glue : PatFrag<(ops node:$ptr), 363 def atomic_load_32_glue : PatFrag<(ops node:$ptr), 369 def atomic_load_64_glue : PatFrag<(ops node:$ptr), 375 def extload_glue : PatFrag<(ops node:$ptr), (unindexedload_glue node:$ptr)> { [all …]
|
H A D | DSInstructions.td | 429 class DSAtomicRetPat<DS_Pseudo inst, ValueType vt, PatFrag frag, int complexity = 0, 739 !cast<PatFrag>(frag#"_local_addrspace")>; 743 !cast<PatFrag>(frag#"_noret_local_addrspace"), /* complexity */ 1>; 758 class DSReadPat <DS_Pseudo inst, ValueType vt, PatFrag frag, int gds=0> : GCNPat < 766 def : DSReadPat<inst, vt, !cast<PatFrag>(frag#"_m0")>; 770 def : DSReadPat<!cast<DS_Pseudo>(!cast<string>(inst)#"_gfx9"), vt, !cast<PatFrag>(frag)>; 774 class DSReadPat_D16 <DS_Pseudo inst, PatFrag frag, ValueType vt> : GCNPat < 818 class DSWritePat <DS_Pseudo inst, ValueType vt, PatFrag frag, int gds=0> : GCNPat < 825 def : DSWritePat<inst, vt, !cast<PatFrag>(frag#"_m0")>; 829 def : DSWritePat<!cast<DS_Pseudo>(!cast<string>(inst)#"_gfx9"), vt, !cast<PatFrag>(frag)>; [all …]
|
/freebsd/contrib/llvm-project/llvm/utils/TableGen/Common/GlobalISel/ |
H A D | PatternParser.cpp | 34 else if (Def.isSubClassOf(PatFrag::ClassName)) in print() 35 OS << "Parsing " << PatFrag::ClassName << " '" << Def.getName() << '\''; in print() 139 getDagWithOperatorOfSubClass(Arg, PatFrag::ClassName)) { in parseInstructionPattern() 141 const PatFrag *PF = parsePatFrag(Def); in parseInstructionPattern() 339 std::unique_ptr<PatFrag> PatternParser::parsePatFragImpl(const Record *Def) { in parsePatFragImpl() 341 if (!Def->isSubClassOf(PatFrag::ClassName)) in parsePatFragImpl() 346 PrintError(Def, "expected 'ins' operator for " + PatFrag::ClassName + in parsePatFragImpl() 353 PrintError(Def, "expected 'outs' operator for " + PatFrag::ClassName + in parsePatFragImpl() 358 auto Result = std::make_unique<PatFrag>(*Def); in parsePatFragImpl() 360 Result->addOutParam(insertStrRef(Name), (PatFrag::ParamKind)Kind); in parsePatFragImpl() [all …]
|
H A D | Patterns.cpp | 459 StringRef PatFrag::getParamKindStr(ParamKind OK) { in getParamKindStr() 474 PatFrag::PatFrag(const Record &Def) : Def(Def) { in PatFrag() function in llvm::gi::PatFrag 478 StringRef PatFrag::getName() const { return Def.getName(); } in getName() 480 ArrayRef<SMLoc> PatFrag::getLoc() const { return Def.getLoc(); } in getLoc() 482 void PatFrag::addInParam(StringRef Name, ParamKind Kind) { in addInParam() 486 iterator_range<PatFrag::ParamIt> PatFrag::in_params() const { in in_params() 490 void PatFrag::addOutParam(StringRef Name, ParamKind Kind) { in addOutParam() 497 iterator_range<PatFrag::ParamIt> PatFrag::out_params() const { in out_params() 501 unsigned PatFrag::num_roots() const { in num_roots() 506 unsigned PatFrag::getParamIdx(StringRef Name) const { in getParamIdx() [all …]
|
H A D | PatternParser.h | 33 class PatFrag; variable 42 mutable SmallPtrSet<const PatFrag *, 2> SeenPatFrags; 97 std::unique_ptr<PatFrag> parsePatFragImpl(const Record *Def); 112 const PatFrag *parsePatFrag(const Record *Def);
|
H A D | Patterns.h | 530 class PatFrag { 559 explicit PatFrag(const Record &Def); 626 PatFragPattern(const PatFrag &PF, StringRef Name) in PatFragPattern() 631 const PatFrag &getPatFrag() const { return PF; } in getPatFrag() 662 const PatFrag &PF;
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Target/ |
H A D | TargetSelectionDAG.td | 993 // PatFrag - A version of PatFrags matching only a single fragment. 994 class PatFrag<dag ops, dag frag, code pred = [{}], 1002 : PatFrag<ops, frag, [{}], NOOP_SDNodeXForm>; 1007 : PatFrag<(ops), frag, pred, xform>; 1025 : PatFrag<(ops), (vt ImmNode), [{}], xform> { 1078 def not : PatFrag<(ops node:$in), (xor node:$in, -1)>; 1079 def vnot : PatFrag<(ops node:$in), (xor node:$in, immAllOnesV)>; 1080 def ineg : PatFrag<(ops node:$in), (sub 0, node:$in)>; 1094 def unindexedload : PatFrag<(ops node:$ptr), (ld node:$ptr)> { 1098 def load : PatFrag<(ops node:$ptr), (unindexedload node:$ptr)> { [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/ |
H A D | WebAssemblyInstrAtomics.td | 152 PatFrag<(ops node:$addr), 155 PatFrag<(ops node:$addr), 158 PatFrag<(ops node:$addr), 166 PatFrag<(ops node:$addr), (anyext (i32 (atomic_load_8 node:$addr)))>; 168 PatFrag<(ops node:$addr), (anyext (i32 (atomic_load_16 node:$addr)))>; 201 multiclass AStorePat<ValueType ty, PatFrag kind, string inst> { 224 class trunc_astore_64<PatFrag kind> : 225 PatFrag<(ops node:$val, node:$addr), 338 multiclass BinRMWPat<ValueType ty, PatFrag kind, string inst> { 348 multiclass BinRMWPattern<PatFrag rmw_32, PatFrag rmw_64, string inst_32, [all …]
|
H A D | WebAssemblyInstrSIMD.td | 76 PatFrag splat; 89 let splat = PatFrag<(ops node:$x), (v16i8 (splat_vector (i8 $x)))>; 101 let splat = PatFrag<(ops node:$x), (v8i16 (splat_vector (i16 $x)))>; 114 let splat = PatFrag<(ops node:$x), (v4i32 (splat_vector (i32 $x)))>; 127 let splat = PatFrag<(ops node:$x), (v2i64 (splat_vector (i64 $x)))>; 140 let splat = PatFrag<(ops node:$x), (v4f32 (splat_vector (f32 $x)))>; 152 let splat = PatFrag<(ops node:$x), (v2f64 (splat_vector (f64 $x)))>; 164 let splat = PatFrag<(ops node:$x), (v8f16 (splat_vector (f16 $x)))>; 223 PatFrag<(ops node:$addr), (splat_vector (vec.lane_vt (vec.lane_load node:$addr)))>, 267 defvar loadpat = !cast<PatFrag>(exts[0]#vec.split.lane_bits); [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
H A D | RISCVInstrInfoA.td | 144 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_monotonic"), 146 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_acquire"), 148 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_release"), 150 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_acq_rel"), 152 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_seq_cst"), 156 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_monotonic"), 158 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_acquire"), 160 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_release"), 162 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_acq_rel"), 164 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_seq_cst"), [all …]
|
H A D | RISCVInstrInfoZa.td | 74 def : Pat<(!cast<PatFrag>(AtomicOp#"_monotonic") (vt GPR:$addr), 78 def : Pat<(!cast<PatFrag>(AtomicOp#"_acquire") (vt GPR:$addr), 82 def : Pat<(!cast<PatFrag>(AtomicOp#"_release") (vt GPR:$addr), 86 def : Pat<(!cast<PatFrag>(AtomicOp#"_acq_rel") (vt GPR:$addr), 90 def : Pat<(!cast<PatFrag>(AtomicOp#"_seq_cst") (vt GPR:$addr), 96 def : Pat<(!cast<PatFrag>(AtomicOp#"_monotonic") (vt GPR:$addr), 100 def : Pat<(!cast<PatFrag>(AtomicOp#"_acquire") (vt GPR:$addr), 104 def : Pat<(!cast<PatFrag>(AtomicOp#"_release") (vt GPR:$addr), 108 def : Pat<(!cast<PatFrag>(AtomicOp#"_acq_rel") (vt GPR:$addr), 112 def : Pat<(!cast<PatFrag>(AtomicOp#"_seq_cst") (vt GPR:$addr),
|
/freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/ |
H A D | HexagonPatterns.td | 107 def ptrue: PatFrag<(ops), (HexagonPTRUE)>; 108 def pfalse: PatFrag<(ops), (HexagonPFALSE)>; 109 def pnot: PatFrag<(ops node:$Pu), (xor node:$Pu, ptrue)>; 111 def valign: PatFrag<(ops node:$Vt, node:$Vs, node:$Ru), 113 def valignaddr: PatFrag<(ops node:$Addr), (HexagonVALIGNADDR node:$Addr)>; 115 def ssat: PatFrag<(ops node:$V, node:$Ty), (HexagonSSAT node:$V, node:$Ty)>; 116 def usat: PatFrag<(ops node:$V, node:$Ty), (HexagonUSAT node:$V, node:$Ty)>; 123 def IsOrAdd: PatFrag<(ops node:$A, node:$B), (or node:$A, node:$B), [{ 279 def Aext64: PatFrag<(ops node:$Rs), (i64 (anyext node:$Rs))>; 280 def Zext64: PatFrag<(ops node:$Rs), (i64 (zext node:$Rs))>; [all …]
|
H A D | HexagonPatternsHVX.td | 65 def qtrue: PatFrag<(ops), (HexagonQTRUE)>; 66 def qfalse: PatFrag<(ops), (HexagonQFALSE)>; 67 def qcat: PatFrag<(ops node:$Qs, node:$Qt), 70 def qnot: PatFrag<(ops node:$Qs), (xor node:$Qs, qtrue)>; 88 class pf3<SDNode Op>: PatFrag<(ops node:$a, node:$b, node:$c), 105 def alignedload: PatFrag<(ops node:$a), (load $a), [{ 109 def unalignedload: PatFrag<(ops node:$a), (load $a), [{ 113 def alignedstore: PatFrag<(ops node:$v, node:$a), (store $v, $a), [{ 117 def unalignedstore: PatFrag<(ops node:$v, node:$a), (store $v, $a), [{ 124 multiclass HvxLdfi_pat<InstHexagon MI, PatFrag Load, ValueType ResType, [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/ |
H A D | AArch64InstrAtomics.td | 32 : PatFrag<(ops node:$ptr), (base node:$ptr)> { 39 : PatFrag<(ops node:$ptr), (base node:$ptr)> { 46 : PatFrag<(ops node:$ptr), (base node:$ptr)> { 164 class releasing_store<PatFrag base> 165 : PatFrag<(ops node:$ptr, node:$val), (base node:$val, node:$ptr)> { 171 class relaxed_store<PatFrag base> 172 : PatFrag<(ops node:$ptr, node:$val), (base node:$val, node:$ptr)> { 287 def ldxr_1 : PatFrag<(ops node:$ptr), (int_aarch64_ldxr node:$ptr), [{ 293 def ldxr_2 : PatFrag<(ops node:$ptr), (int_aarch64_ldxr node:$ptr), [{ 299 def ldxr_4 : PatFrag<(ops node:$ptr), (int_aarch64_ldxr node:$ptr), [{ [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/M68k/ |
H A D | M68kInstrInfo.td | 524 def Mxloadi16 : PatFrag<(ops node:$ptr), (i16 (unindexedload node:$ptr)), [{ 534 def Mxloadi32 : PatFrag<(ops node:$ptr), (i32 (unindexedload node:$ptr)), [{ 544 def Mxloadi8 : PatFrag<(ops node:$ptr), (i8 (load node:$ptr))>; 546 def MxSExtLoadi16i8 : PatFrag<(ops node:$ptr), (i16 (sextloadi8 node:$ptr))>; 547 def MxSExtLoadi32i8 : PatFrag<(ops node:$ptr), (i32 (sextloadi8 node:$ptr))>; 548 def MxSExtLoadi32i16 : PatFrag<(ops node:$ptr), (i32 (sextloadi16 node:$ptr))>; 550 def MxZExtLoadi8i1 : PatFrag<(ops node:$ptr), (i8 (zextloadi1 node:$ptr))>; 551 def MxZExtLoadi16i1 : PatFrag<(ops node:$ptr), (i16 (zextloadi1 node:$ptr))>; 552 def MxZExtLoadi32i1 : PatFrag<(ops node:$ptr), (i32 (zextloadi1 node:$ptr))>; 553 def MxZExtLoadi16i8 : PatFrag<(ops node:$ptr), (i16 (zextloadi8 node:$ptr))>; [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/CSKY/ |
H A D | CSKYInstrFormatsF1.td | 60 class F_XZ<bits<5> datatype, bits<6> sop, string op, string op_su, PatFrag opnode, RegisterOperand … 72 class F_XZ_TRANS_DS<bits<6> sop, string op, PatFrag opnode> 76 class F_XZ_TRANS_SD<bits<6> sop, string op, PatFrag opnode> 87 multiclass FT_XZ<bits<6> sop, string op, PatFrag opnode> { 105 class F_XYZ<bits<5> datatype, bits<6> sop, string op, string op_su, PatFrag opnode, RegisterOperand… 110 multiclass FT_XYZ<bits<6> sop, string op, PatFrag opnode> { 117 class F_ACCUM_XYZ<bits<5> datatype, bits<6> sop, string op, string op_su, PatFrag opnode, RegisterO… 123 multiclass FT_ACCUM_XYZ<bits<6> sop, string op, PatFrag opnode> {
|
H A D | CSKYInstrInfo.td | 494 class TriOpFrag<dag res> : PatFrag<(ops node: $LHS, node:$MHS, node:$RHS), res>; 495 class BinOpFrag<dag res> : PatFrag<(ops node:$LHS, node:$RHS), res>; 496 class UnOpFrag<dag res> : PatFrag<(ops node:$Src), res>; 498 def eqToAdd : PatFrag<(ops node:$lhs, node:$rhs), (or node:$lhs, node:$rhs), [{ 1089 multiclass LdPat<PatFrag LoadOp, ImmLeaf imm_type, Instruction Inst, ValueType Type> { 1114 multiclass LdrPat<PatFrag LoadOp, Instruction Inst, ValueType Type> { 1131 multiclass StPat<PatFrag StoreOp, ValueType Type, ImmLeaf imm_type, Instruction Inst> { 1146 multiclass StrPat<PatFrag StoreOp, ValueType Type, Instruction Inst> { 1195 multiclass BTF32Pat0<PatFrag cond0, PatFrag cond [all...] |
/freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/ |
H A D | PPCInstrAltivec.td | 33 def vpkuhum_shuffle : PatFrag<(ops node:$lhs, node:$rhs), 37 def vpkuwum_shuffle : PatFrag<(ops node:$lhs, node:$rhs), 41 def vpkudum_shuffle : PatFrag<(ops node:$lhs, node:$rhs), 45 def vpkuhum_unary_shuffle : PatFrag<(ops node:$lhs, node:$rhs), 49 def vpkuwum_unary_shuffle : PatFrag<(ops node:$lhs, node:$rhs), 53 def vpkudum_unary_shuffle : PatFrag<(ops node:$lhs, node:$rhs), 60 def vpkuhum_swapped_shuffle : PatFrag<(ops node:$lhs, node:$rhs), 64 def vpkuwum_swapped_shuffle : PatFrag<(ops node:$lhs, node:$rhs), 68 def vpkudum_swapped_shuffle : PatFrag<(ops node:$lhs, node:$rhs), 73 def vmrglb_shuffle : PatFrag<(ops node:$lhs, node:$rhs), [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/LoongArch/ |
H A D | LoongArchInstrInfo.td | 523 def fma_nsz : PatFrag<(ops node:$fj, node:$fk, node:$fa), 1068 def assertsexti32 : PatFrag<(ops node:$src), (assertsext node:$src), [{ 1105 : PatFrag<(ops node:$val, node:$count), 1108 : PatFrag<(ops node:$val, node:$count), 1111 def mul_const_oneuse : PatFrag<(ops node:$A, node:$B), 1436 class BccPat<PatFrag CondOp, LAInst Inst> 1447 class BccSwapPat<PatFrag CondOp, LAInst InstBcc> 1775 multiclass LdPat<PatFrag LoadOp, LAInst Inst, ValueType vt = GRLenVT> { 1799 class RegRegLdPat<PatFrag LoadOp, LAInst Inst, ValueType vt> 1817 multiclass StPat<PatFrag StoreOp, LAInst Inst, RegisterClass StTy, [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/Mips/ |
H A D | MipsMSAInstrInfo.td | 73 def vextract_sext_i8 : PatFrag<(ops node:$vec, node:$idx), 75 def vextract_sext_i16 : PatFrag<(ops node:$vec, node:$idx), 77 def vextract_sext_i32 : PatFrag<(ops node:$vec, node:$idx), 79 def vextract_sext_i64 : PatFrag<(ops node:$vec, node:$idx), 82 def vextract_zext_i8 : PatFrag<(ops node:$vec, node:$idx), 84 def vextract_zext_i16 : PatFrag<(ops node:$vec, node:$idx), 86 def vextract_zext_i32 : PatFrag<(ops node:$vec, node:$idx), 88 def vextract_zext_i64 : PatFrag<(ops node:$vec, node:$idx), 91 def vinsert_v16i8 : PatFrag<(ops node:$vec, node:$val, node:$idx), 93 def vinsert_v8i16 : PatFrag<(ops node:$vec, node:$val, node:$idx), [all …]
|