Home
last modified time | relevance | path

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

1234

/freebsd/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 …]
H A DX86InstrFMA.td37 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 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 …]
/freebsd/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 …]
/freebsd/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;
/freebsd/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 …]
/freebsd/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 …]
/freebsd/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),
/freebsd/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 …]
/freebsd/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 …]
/freebsd/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 …]
/freebsd/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 cond
[all...]
/freebsd/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 …]
/freebsd/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 …]
/freebsd/contrib/llvm-project/llvm/lib/Target/Mips/
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 …]

1234