Home
last modified time | relevance | path

Searched refs:PatFrag (Results 1 – 25 of 84) sorted by relevance

1234

/src/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86InstrFragmentsSIMD.td28 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 DX86InstrFragments.td501 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 …]
/src/contrib/llvm-project/llvm/lib/Target/SystemZ/
H A DSystemZOperators.td475 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 …]
/src/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DAMDGPUInstructions.td171 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 DSIInstrInfo.td208 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 DDSInstructions.td429 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 …]
/src/contrib/llvm-project/llvm/utils/TableGen/Common/GlobalISel/
H A DPatternParser.cpp34 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 DPatterns.cpp459 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 DPatternParser.h33 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 DPatterns.h530 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;
/src/contrib/llvm-project/llvm/include/llvm/Target/
H A DTargetSelectionDAG.td993 // 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 …]
/src/contrib/llvm-project/llvm/lib/Target/WebAssembly/
H A DWebAssemblyInstrAtomics.td152 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 DWebAssemblyInstrSIMD.td76 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 …]
/src/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVInstrInfoA.td144 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 DRISCVInstrInfoZa.td74 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),
/src/contrib/llvm-project/llvm/lib/Target/Hexagon/
H A DHexagonPatterns.td107 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 DHexagonPatternsHVX.td65 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 …]
/src/contrib/llvm-project/llvm/lib/Target/AArch64/
H A DAArch64InstrAtomics.td32 : 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 …]
/src/contrib/llvm-project/llvm/lib/Target/M68k/
H A DM68kInstrInfo.td524 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 …]
/src/contrib/llvm-project/llvm/lib/Target/CSKY/
H A DCSKYInstrFormatsF1.td60 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 DCSKYInstrInfo.td494 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 cond1, ImmLeaf imm_ty, Instruction inst> {
1221 multiclass BTF32Pat1<PatFrag cond0, PatFrag cond1, Instruction cmp,
[all …]
/src/contrib/llvm-project/llvm/lib/Target/Mips/
H A DMipsInstrCompiler.td15 def shiftMask_32 : PatFrag<(ops node:$lhs), (and node:$lhs, imm), [{
19 def shiftMask_64 : PatFrag<(ops node:$src0), (and node:$src0, imm), [{
H A DMipsMSAInstrInfo.td73 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 …]
/src/contrib/llvm-project/llvm/lib/Target/PowerPC/
H A DPPCInstrAltivec.td33 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 …]
/src/contrib/llvm-project/llvm/lib/Target/LoongArch/
H A DLoongArchInstrInfo.td523 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 …]

1234