Home
last modified time | relevance | path

Searched refs:PatFrag (Results 1 – 25 of 87) 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))>;
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 DX86InstrFragments.td507 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 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.td504 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 DPatternParser.cpp34 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 DPatterns.cpp497 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 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.h554 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 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.td211 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 DDSInstructions.td468 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 DTargetSelectionDAG.td1052 // 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 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_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 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)))>;
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 DRISCVInstrInfoA.td125 : 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 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)>;
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 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)> {
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 DM68kInstrInfo.td556 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 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.td562 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 DBPFInstrInfo.td516 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 …]

1234