| /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))>; 968 def loadv8f16 : PatFrag<(ops node:$ptr), (v8f16 (load node:$ptr))>; 969 def loadv8bf16 : PatFrag<(ops node:$ptr), (v8bf16 (load node:$ptr))>; 970 def loadv4f32 : PatFrag<(ops node:$ptr), (v4f32 (load node:$ptr))>; 971 def loadv2f64 : PatFrag<(ops node:$ptr), (v2f64 (load node:$ptr))>; 972 def loadv2i64 : PatFrag<(ops node:$ptr), (v2i64 (load node:$ptr))>; 973 def loadv4i32 : PatFrag<(ops node:$ptr), (v4i32 (load node:$ptr))>; 974 def loadv8i16 : PatFrag<(ops node:$ptr), (v8i16 (load node:$ptr))>; 975 def loadv16i8 : PatFrag<(ops node:$ptr), (v16i8 (load node:$ptr))>; 978 def loadv16f16 : PatFrag<(ops node:$ptr), (v16f16 (load node:$ptr))>; [all …]
|
| H A D | X86InstrFragments.td | 507 def loadi8 : PatFrag<(ops node:$ptr), (i8 (unindexedload node:$ptr)), [{ 518 def loadi16 : PatFrag<(ops node:$ptr), (i16 (unindexedload node:$ptr)), [{ 537 def loadi32 : PatFrag<(ops node:$ptr), (i32 (unindexedload node:$ptr)), [{ 556 def loadi64 : PatFrag<(ops node:$ptr), (i64 (load node:$ptr))>; 557 def loadf16 : PatFrag<(ops node:$ptr), (f16 (load node:$ptr))>; 558 def loadf32 : PatFrag<(ops node:$ptr), (f32 (load node:$ptr))>; 559 def loadf64 : PatFrag<(ops node:$ptr), (f64 (load node:$ptr))>; 560 def loadf80 : PatFrag<(ops node:$ptr), (f80 (load node:$ptr))>; 561 def loadf128 : PatFrag<(ops node:$ptr), (f128 (load node:$ptr))>; 562 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 | 504 def z_loadbswap16 : PatFrag<(ops node:$addr), (z_loadbswap node:$addr), [{ 507 def z_loadbswap32 : PatFrag<(ops node:$addr), (z_loadbswap node:$addr), [{ 510 def z_loadbswap64 : PatFrag<(ops node:$addr), (z_loadbswap node:$addr), [{ 514 def z_storebswap16 : PatFrag<(ops node:$src, node:$addr), 518 def z_storebswap32 : PatFrag<(ops node:$src, node:$addr), 522 def z_storebswap64 : PatFrag<(ops node:$src, node:$addr), 529 : PatFrag<(ops node:$valid, node:$mask, node:$bb), 532 : PatFrag<(ops node:$true, node:$false, node:$valid, node:$mask), 535 def z_ipm : PatFrag<(ops), (z_ipm_1 CC)>; 536 def z_addcarry : PatFrag<(ops node:$lhs, node:$rhs), [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() 127 getDagWithOperatorOfSubClass(Arg, PatFrag::ClassName)) { in parseInstructionPattern() 129 const PatFrag *PF = parsePatFrag(Def); in parseInstructionPattern() 327 std::unique_ptr<PatFrag> PatternParser::parsePatFragImpl(const Record *Def) { in parsePatFragImpl() 329 if (!Def->isSubClassOf(PatFrag::ClassName)) in parsePatFragImpl() 334 PrintError(Def, "expected 'ins' operator for " + PatFrag::ClassName + in parsePatFragImpl() 341 PrintError(Def, "expected 'outs' operator for " + PatFrag::ClassName + in parsePatFragImpl() 346 auto Result = std::make_unique<PatFrag>(*Def); in parsePatFragImpl() 348 Result->addOutParam(insertStrRef(Name), (PatFrag::ParamKind)Kind); in parsePatFragImpl() [all …]
|
| H A D | Patterns.cpp | 497 StringRef PatFrag::getParamKindStr(ParamKind OK) { in getParamKindStr() 512 PatFrag::PatFrag(const Record &Def) : Def(Def) { in PatFrag() function in llvm::gi::PatFrag 516 StringRef PatFrag::getName() const { return Def.getName(); } in getName() 518 ArrayRef<SMLoc> PatFrag::getLoc() const { return Def.getLoc(); } in getLoc() 520 void PatFrag::addInParam(StringRef Name, ParamKind Kind) { in addInParam() 524 iterator_range<PatFrag::ParamIt> PatFrag::in_params() const { in in_params() 528 void PatFrag::addOutParam(StringRef Name, ParamKind Kind) { in addOutParam() 535 iterator_range<PatFrag::ParamIt> PatFrag::out_params() const { in out_params() 539 unsigned PatFrag::num_roots() const { in num_roots() 544 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 | 554 class PatFrag { 583 explicit PatFrag(const Record &Def); 650 PatFragPattern(const PatFrag &PF, StringRef Name) in PatFragPattern() 655 const PatFrag &getPatFrag() const { return PF; } in getPatFrag() 686 const PatFrag &PF;
|
| /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 | 211 def "_noret" : PatFrag< 251 def SIbuffer_atomic_cmpswap_noret : PatFrag< 313 class UnscaledMFMAOptimizationPat<SDPatternOperator intrin> : PatFrag< 341 // This is for SDNodes and PatFrag for local loads and stores to 357 def unindexedload_glue : PatFrag <(ops node:$ptr), (AMDGPUld_glue node:$ptr)> { 362 def load_glue : PatFrag <(ops node:$ptr), (unindexedload_glue node:$ptr)> { 368 PatFrag<(ops node:$ptr), (AMDGPUatomic_ld_glue node:$ptr)> { 374 PatFrag<(ops node:$ptr), (AMDGPUatomic_ld_glue node:$ptr)> { 380 PatFrag<(ops node:$ptr), (AMDGPUatomic_ld_glue node:$ptr)> { 386 PatFrag<(ops node:$ptr), (AMDGPUatomic_ld_glue node:$ptr)> { [all …]
|
| H A D | DSInstructions.td | 468 class DSAtomicRetPat<DS_Pseudo inst, ValueType vt, PatFrag frag, int complexity = 0, 790 !cast<PatFrag>(frag#"_local_addrspace")>; 794 !cast<PatFrag>(frag#"_noret_local_addrspace"), /* complexity */ 1>; 847 class DSReadPat <DS_Pseudo inst, ValueType vt, PatFrag frag, int gds=0> : GCNPat < 855 def : DSReadPat<inst, vt, !cast<PatFrag>(frag#"_m0")>; 859 def : DSReadPat<!cast<DS_Pseudo>(!cast<string>(inst)#"_gfx9"), vt, !cast<PatFrag>(frag)>; 866 def : DSReadPat<inst, vt, !cast<PatFrag>(frag#"_m0")>; 872 def : DSReadPat<!cast<DS_Pseudo>(!cast<string>(inst)#"_gfx9"), vt, !cast<PatFrag>(frag)>; 875 def : DSReadPat<!cast<DS_Pseudo>(!cast<string>(inst)#"_t16"), vt, !cast<PatFrag>(frag)>; 880 class DSReadPat_D16 <DS_Pseudo inst, PatFrag frag, ValueType vt> : GCNPat < [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Target/ |
| H A D | TargetSelectionDAG.td | 1052 // PatFrag - A version of PatFrags matching only a single fragment. 1053 class PatFrag<dag ops, dag frag, code pred = [{}], 1061 : PatFrag<ops, frag, [{}], NOOP_SDNodeXForm>; 1066 : PatFrag<(ops), frag, pred, xform> { 1086 : PatFrag<(ops), (vt ImmNode), [{}], xform> { 1141 def fmul_contract : PatFrag<(ops node:$a, node:$b), (fmul node:$a, node:$b),[{ 1146 def fadd_contract : PatFrag<(ops node:$a, node:$b), (fadd node:$a, node:$b),[{ 1151 def not : PatFrag<(ops node:$in), (xor node:$in, -1)>; 1152 def vnot : PatFrag<(ops node:$in), (xor node:$in, immAllOnesV)>; 1153 def ineg : PatFrag<(ops node:$in), (sub 0, node:$in)>; [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_azext_8 node:$addr)))>; 168 PatFrag<(ops node:$addr), (anyext (i32 (atomic_load_azext_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)))>; 224 PatFrag<(ops node:$addr), (splat_vector (vec.lane_vt (vec.lane_load node:$addr)))>, 268 defvar loadpat = !cast<PatFrag>(exts[0]#vec.split.lane_bits); [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
| H A D | RISCVInstrInfoA.td | 125 : PatFrag<(ops node:$ptr), (base node:$ptr)> { 131 : PatFrag<(ops node:$ptr), (base node:$ptr)> { 137 : PatFrag<(ops node:$ptr), (base node:$ptr)> { 143 class relaxed_store<PatFrag base> 144 : PatFrag<(ops node:$val, node:$ptr), (base node:$val, node:$ptr)> { 149 class releasing_store<PatFrag base> 150 : PatFrag<(ops node:$val, node:$ptr), (base node:$val, node:$ptr)> { 155 class seq_cst_store<PatFrag base> 156 : PatFrag<(ops node:$val, node:$ptr), (base node:$val, node:$ptr)> { 194 def : PatGprGpr<!cast<PatFrag>(AtomicOp#"_monotonic"), [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)>; 119 def valign: PatFrag<(ops node:$Vt, node:$Vs, node:$Ru), 121 def valignaddr: PatFrag<(ops node:$Addr), (HexagonVALIGNADDR node:$Addr)>; 123 def ssat: PatFrag<(ops node:$V, node:$Ty), (HexagonSSAT node:$V, node:$Ty)>; 124 def usat: PatFrag<(ops node:$V, node:$Ty), (HexagonUSAT node:$V, node:$Ty)>; 131 def IsOrAdd: PatFrag<(ops node:$A, node:$B), (or node:$A, node:$B), [{ 287 def Aext64: PatFrag<(ops node:$Rs), (i64 (anyext node:$Rs))>; 288 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)> { 168 class releasing_store<PatFrag base> 169 : PatFrag<(ops node:$ptr, node:$val), (base node:$val, node:$ptr)> { 175 class relaxed_store<PatFrag base> 176 : PatFrag<(ops node:$ptr, node:$val), (base node:$val, node:$ptr)> { 291 def ldxr_1 : PatFrag<(ops node:$ptr), (int_aarch64_ldxr node:$ptr), [{ 297 def ldxr_2 : PatFrag<(ops node:$ptr), (int_aarch64_ldxr node:$ptr), [{ 303 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 | 556 def Mxloadi16 : PatFrag<(ops node:$ptr), (i16 (unindexedload node:$ptr)), [{ 566 def Mxloadi32 : PatFrag<(ops node:$ptr), (i32 (unindexedload node:$ptr)), [{ 576 def Mxloadi8 : PatFrag<(ops node:$ptr), (i8 (load node:$ptr))>; 578 def MxSExtLoadi16i8 : PatFrag<(ops node:$ptr), (i16 (sextloadi8 node:$ptr))>; 579 def MxSExtLoadi32i8 : PatFrag<(ops node:$ptr), (i32 (sextloadi8 node:$ptr))>; 580 def MxSExtLoadi32i16 : PatFrag<(ops node:$ptr), (i32 (sextloadi16 node:$ptr))>; 582 def MxZExtLoadi8i1 : PatFrag<(ops node:$ptr), (i8 (zextloadi1 node:$ptr))>; 583 def MxZExtLoadi16i1 : PatFrag<(ops node:$ptr), (i16 (zextloadi1 node:$ptr))>; 584 def MxZExtLoadi32i1 : PatFrag<(ops node:$ptr), (i32 (zextloadi1 node:$ptr))>; 585 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 | 562 def fma_nsz : PatFrag<(ops node:$fj, node:$fk, node:$fa), 1132 def assertsexti32 : PatFrag<(ops node:$src), (assertsext node:$src), [{ 1169 : PatFrag<(ops node:$val, node:$count), 1172 : PatFrag<(ops node:$val, node:$count), 1175 def mul_const_oneuse : PatFrag<(ops node:$A, node:$B), 1506 def loongarch_selectcc_frag : PatFrag<(ops node:$lhs, node:$rhs, node:$cc, 1540 class BccPat<PatFrag CondOp, LAInst Inst> 1551 class BccSwapPat<PatFrag CondOp, LAInst InstBcc> 1900 class RegRegLdPat<PatFrag LoadOp, LAInst Inst, ValueType vt> 1918 multiclass StPat<PatFrag StoreOp, LAInst Inst, RegisterClass StTy, [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/BPF/ |
| H A D | BPFInstrInfo.td | 516 class STOREi64<BPFWidthModifer Opc, string OpcodeStr, PatFrag OpNode> 589 class relaxed_store<PatFrag base> 590 : PatFrag<(ops node:$val, node:$ptr), (base node:$val, node:$ptr)> { 595 class releasing_store<PatFrag base> 596 : PatFrag<(ops node:$val, node:$ptr), (base node:$val, node:$ptr)> { 627 class LOADi64<BPFWidthModifer SizeOp, BPFModeModifer ModOp, string OpcodeStr, PatFrag OpNode> 687 : PatFrag<(ops node:$ptr), (base node:$ptr)> { 693 : PatFrag<(ops node:$ptr), (base node:$ptr)> { 1024 : PatFrag<(ops node:$A, node:$B), 1029 : PatFrag<(ops node:$A, node:$B), [all …]
|