Lines Matching full:p0

16 def OP_ADD      : Op<(op "+", $p0, $p1)>;
17 def OP_ADDL : Op<(op "+", (call "vmovl", $p0), (call "vmovl", $p1))>;
18 def OP_ADDLHi : Op<(op "+", (call "vmovl_high", $p0),
20 def OP_ADDW : Op<(op "+", $p0, (call "vmovl", $p1))>;
21 def OP_ADDWHi : Op<(op "+", $p0, (call "vmovl_high", $p1))>;
22 def OP_SUB : Op<(op "-", $p0, $p1)>;
23 def OP_SUBL : Op<(op "-", (call "vmovl", $p0), (call "vmovl", $p1))>;
24 def OP_SUBLHi : Op<(op "-", (call "vmovl_high", $p0),
26 def OP_SUBW : Op<(op "-", $p0, (call "vmovl", $p1))>;
27 def OP_SUBWHi : Op<(op "-", $p0, (call "vmovl_high", $p1))>;
28 def OP_MUL : Op<(op "*", $p0, $p1)>;
29 def OP_MLA : Op<(op "+", $p0, (op "*", $p1, $p2))>;
30 def OP_MLAL : Op<(op "+", $p0, (call "vmull", $p1, $p2))>;
31 def OP_MULLHi : Op<(call "vmull", (call "vget_high", $p0),
34 (cast "poly64_t", (call "vget_high", $p0)),
36 def OP_MULLHi_N : Op<(call "vmull_n", (call "vget_high", $p0), $p1)>;
37 def OP_MLALHi : Op<(call "vmlal", $p0, (call "vget_high", $p1),
39 def OP_MLALHi_N : Op<(call "vmlal_n", $p0, (call "vget_high", $p1), $p2)>;
40 def OP_MLS : Op<(op "-", $p0, (op "*", $p1, $p2))>;
41 def OP_FMLS : Op<(call "vfma", $p0, (op "-", $p1), $p2)>;
42 def OP_MLSL : Op<(op "-", $p0, (call "vmull", $p1, $p2))>;
43 def OP_MLSLHi : Op<(call "vmlsl", $p0, (call "vget_high", $p1),
45 def OP_MLSLHi_N : Op<(call "vmlsl_n", $p0, (call "vget_high", $p1), $p2)>;
46 def OP_MUL_N : Op<(op "*", $p0, (dup $p1))>;
47 def OP_MULX_N : Op<(call "vmulx", $p0, (dup $p1))>;
48 def OP_MLA_N : Op<(op "+", $p0, (op "*", $p1, (dup $p2)))>;
49 def OP_MLS_N : Op<(op "-", $p0, (op "*", $p1, (dup $p2)))>;
50 def OP_FMLA_N : Op<(call "vfma", $p0, $p1, (dup $p2))>;
51 def OP_FMLS_N : Op<(call "vfma", $p0, (op "-", $p1), (dup $p2))>;
52 def OP_MLAL_N : Op<(op "+", $p0, (call "vmull", $p1, (dup $p2)))>;
53 def OP_MLSL_N : Op<(op "-", $p0, (call "vmull", $p1, (dup $p2)))>;
54 def OP_MUL_LN : Op<(op "*", $p0, (call_mangled "splat_lane", $p1, $p2))>;
55 def OP_MULX_LN : Op<(call "vmulx", $p0, (call_mangled "splat_lane", $p1, $p2))>;
56 def OP_MULL_N : Op<(call "vmull", $p0, (dup $p1))>;
57 def OP_MULL_LN : Op<(call "vmull", $p0, (call_mangled "splat_lane", $p1, $p2))>;
58 def OP_MULLHi_LN: Op<(call "vmull", (call "vget_high", $p0), (call_mangled "splat_lane", $p1, $p2))…
59 def OP_MLA_LN : Op<(op "+", $p0, (op "*", $p1, (call_mangled "splat_lane", $p2, $p3)))>;
60 def OP_MLS_LN : Op<(op "-", $p0, (op "*", $p1, (call_mangled "splat_lane", $p2, $p3)))>;
61 def OP_MLAL_LN : Op<(op "+", $p0, (call "vmull", $p1, (call_mangled "splat_lane", $p2, $p3)))>;
62 def OP_MLALHi_LN: Op<(op "+", $p0, (call "vmull", (call "vget_high", $p1),
64 def OP_MLSL_LN : Op<(op "-", $p0, (call "vmull", $p1, (call_mangled "splat_lane", $p2, $p3)))>;
65 def OP_MLSLHi_LN : Op<(op "-", $p0, (call "vmull", (call "vget_high", $p1),
67 def OP_QDMULL_N : Op<(call "vqdmull", $p0, (dup $p1))>;
68 def OP_QDMULL_LN : Op<(call "vqdmull", $p0, (call_mangled "splat_lane", $p1, $p2))>;
69 def OP_QDMULLHi_LN : Op<(call "vqdmull", (call "vget_high", $p0),
71 def OP_QDMLAL_N : Op<(call "vqdmlal", $p0, $p1, (dup $p2))>;
72 def OP_QDMLAL_LN : Op<(call "vqdmlal", $p0, $p1, (call_mangled "splat_lane", $p2, $p3))>;
73 def OP_QDMLALHi_LN : Op<(call "vqdmlal", $p0, (call "vget_high", $p1),
75 def OP_QDMLSL_N : Op<(call "vqdmlsl", $p0, $p1, (dup $p2))>;
76 def OP_QDMLSL_LN : Op<(call "vqdmlsl", $p0, $p1, (call_mangled "splat_lane", $p2, $p3))>;
77 def OP_QDMLSLHi_LN : Op<(call "vqdmlsl", $p0, (call "vget_high", $p1),
79 def OP_QDMULH_N : Op<(call "vqdmulh", $p0, (dup $p1))>;
80 def OP_QDMULH_LN : Op<(call "vqdmulh", $p0, (call_mangled "splat_lane", $p1, $p2))>;
81 def OP_QRDMULH_LN : Op<(call "vqrdmulh", $p0, (call_mangled "splat_lane", $p1, $p2))>;
82 def OP_QRDMULH_N : Op<(call "vqrdmulh", $p0, (dup $p1))>;
83 def OP_QRDMLAH_LN : Op<(call "vqrdmlah", $p0, $p1, (call_mangled "splat_lane", $p2, $p3))>;
84 def OP_QRDMLSH_LN : Op<(call "vqrdmlsh", $p0, $p1, (call_mangled "splat_lane", $p2, $p3))>;
85 def OP_FMS_LN : Op<(call "vfma_lane", $p0, (op "-", $p1), $p2, $p3)>;
86 def OP_FMS_LNQ : Op<(call "vfma_laneq", $p0, (op "-", $p1), $p2, $p3)>;
87 def OP_TRN1 : Op<(shuffle $p0, $p1, (interleave (decimate mask0, 2),
89 def OP_ZIP1 : Op<(shuffle $p0, $p1, (lowhalf (interleave mask0, mask1)))>;
90 def OP_UZP1 : Op<(shuffle $p0, $p1, (add (decimate mask0, 2),
92 def OP_TRN2 : Op<(shuffle $p0, $p1, (interleave
95 def OP_ZIP2 : Op<(shuffle $p0, $p1, (highhalf (interleave mask0, mask1)))>;
96 def OP_UZP2 : Op<(shuffle $p0, $p1, (add (decimate (rotl mask0, 1), 2),
98 def OP_EQ : Op<(cast "R", (op "==", $p0, $p1))>;
99 def OP_GE : Op<(cast "R", (op ">=", $p0, $p1))>;
100 def OP_LE : Op<(cast "R", (op "<=", $p0, $p1))>;
101 def OP_GT : Op<(cast "R", (op ">", $p0, $p1))>;
102 def OP_LT : Op<(cast "R", (op "<", $p0, $p1))>;
103 def OP_NEG : Op<(op "-", $p0)>;
104 def OP_NOT : Op<(op "~", $p0)>;
105 def OP_AND : Op<(op "&", $p0, $p1)>;
106 def OP_OR : Op<(op "|", $p0, $p1)>;
107 def OP_XOR : Op<(op "^", $p0, $p1)>;
108 def OP_ANDN : Op<(op "&", $p0, (op "~", $p1))>;
109 def OP_ORN : Op<(op "|", $p0, (op "~", $p1))>;
110 def OP_CAST : LOp<[(save_temp $promote, $p0),
112 def OP_HI : Op<(shuffle $p0, $p0, (highhalf mask0))>;
113 def OP_LO : Op<(shuffle $p0, $p0, (lowhalf mask0))>;
114 def OP_CONC : Op<(shuffle $p0, $p1, (add mask0, mask1))>;
115 def OP_DUP : Op<(dup $p0)>;
116 def OP_DUP_LN : Op<(call_mangled "splat_lane", $p0, $p1)>;
118 (op "&", $p0, (cast $p0, $p1)),
119 (op "&", (op "~", $p0), (cast $p0, $p2))))>;
120 def OP_REV16 : Op<(shuffle $p0, $p0, (rev 16, mask0))>;
121 def OP_REV32 : Op<(shuffle $p0, $p0, (rev 32, mask0))>;
122 def OP_REV64 : Op<(shuffle $p0, $p0, (rev 64, mask0))>;
123 def OP_XTN : Op<(call "vcombine", $p0, (call "vmovn", $p1))>;
124 def OP_SQXTUN : Op<(call "vcombine", (cast $p0, "U", $p0),
126 def OP_QXTN : Op<(call "vcombine", $p0, (call "vqmovn", $p1))>;
127 def OP_VCVT_NA_HI_F16 : Op<(call "vcombine", $p0, (call "vcvt_f16_f32", $p1))>;
128 def OP_VCVT_NA_HI_F32 : Op<(call "vcombine", $p0, (call "vcvt_f32_f64", $p1))>;
129 def OP_VCVT_EX_HI_F32 : Op<(call "vcvt_f32_f16", (call "vget_high", $p0))>;
130 def OP_VCVT_EX_HI_F64 : Op<(call "vcvt_f64_f32", (call "vget_high", $p0))>;
131 def OP_VCVTX_HI : Op<(call "vcombine", $p0, (call "vcvtx_f32", $p1))>;
132 def OP_REINT : Op<(cast "R", $p0)>;
133 def OP_ADDHNHi : Op<(call "vcombine", $p0, (call "vaddhn", $p1, $p2))>;
134 def OP_RADDHNHi : Op<(call "vcombine", $p0, (call "vraddhn", $p1, $p2))>;
135 def OP_SUBHNHi : Op<(call "vcombine", $p0, (call "vsubhn", $p1, $p2))>;
136 def OP_RSUBHNHi : Op<(call "vcombine", $p0, (call "vrsubhn", $p1, $p2))>;
137 def OP_ABDL : Op<(cast "R", (call "vmovl", (cast $p0, "U",
138 (call "vabd", $p0, $p1))))>;
139 def OP_ABDLHi : Op<(call "vabdl", (call "vget_high", $p0),
141 def OP_ABA : Op<(op "+", $p0, (call "vabd", $p1, $p2))>;
142 def OP_ABAL : Op<(op "+", $p0, (call "vabdl", $p1, $p2))>;
143 def OP_ABALHi : Op<(call "vabal", $p0, (call "vget_high", $p1),
145 def OP_QDMULLHi : Op<(call "vqdmull", (call "vget_high", $p0),
147 def OP_QDMULLHi_N : Op<(call "vqdmull_n", (call "vget_high", $p0), $p1)>;
148 def OP_QDMLALHi : Op<(call "vqdmlal", $p0, (call "vget_high", $p1),
150 def OP_QDMLALHi_N : Op<(call "vqdmlal_n", $p0, (call "vget_high", $p1), $p2)>;
151 def OP_QDMLSLHi : Op<(call "vqdmlsl", $p0, (call "vget_high", $p1),
153 def OP_QDMLSLHi_N : Op<(call "vqdmlsl_n", $p0, (call "vget_high", $p1), $p2)>;
154 def OP_DIV : Op<(op "/", $p0, $p1)>;
156 (call "vget_high", $p0), $p1))>;
158 (cast "R", "H", $p0),
162 def OP_MOVL_HI : LOp<[(save_temp $a1, (call "vget_high", $p0)),
165 def OP_COPY_LN : Op<(call "vset_lane", (call "vget_lane", $p2, $p3), $p0, $p1)>;
166 def OP_SCALAR_MUL_LN : Op<(op "*", $p0, (call "vget_lane", $p1, $p2))>;
167 def OP_SCALAR_MULX_LN : Op<(call "vmulx", $p0, (call "vget_lane", $p1, $p2))>;
168 def OP_SCALAR_VMULX_LN : LOp<[(save_temp $x, (call "vget_lane", $p0,
172 (call "vset_lane", $z, $p0, $p2)]>;
173 def OP_SCALAR_VMULX_LNQ : LOp<[(save_temp $x, (call "vget_lane", $p0,
177 (call "vset_lane", $z, $p0, (literal "int32_t",
180 Op<(call opname, $p0, (call "vget_lane", $p1, $p2))>;
186 def OP_SCALAR_QRDMLAH_LN : Op<(call "vqrdmlah", $p0, $p1,
188 def OP_SCALAR_QRDMLSH_LN : Op<(call "vqrdmlsh", $p0, $p1,
193 (bitcast "int16x4_t", $p0), $p1))>;
196 (bitcast "int16x8_t", $p0), $p1))>;
199 (bitcast "int16_t", $p0),
203 (bitcast "int16_t", $p0),
207 : Op<(call "vdot", $p0, $p1,
210 : Op<(call "vdot", $p0, $p1,
213 def OP_FMLAL_LN : Op<(call "vfmlal_low", $p0, $p1,
215 def OP_FMLSL_LN : Op<(call "vfmlsl_low", $p0, $p1,
217 def OP_FMLAL_LN_Hi : Op<(call "vfmlal_high", $p0, $p1,
219 def OP_FMLSL_LN_Hi : Op<(call "vfmlsl_high", $p0, $p1,
223 : Op<(call "vusdot", $p0, $p1,
226 : Op<(call "vusdot", $p0, $p1,
231 : Op<(call "vusdot", $p0,
234 : Op<(call "vusdot", $p0,
238 : Op<(call "vbfdot", $p0, $p1,
242 : Op<(call "vbfdot", $p0, $p1,
246 : Op<(call "vbfmlalb", $p0, $p1,
250 : Op<(call "vbfmlalt", $p0, $p1,
255 (call "vshll_n", (bitcast "int16x4_t", $p0),
258 : Op<(call "vcvt_f32_bf16", (call "vget_low", $p0))>;
260 : Op<(call "vcvt_f32_bf16", (call "vget_high", $p0))>;
263 : Op<(call "__a64_vcvtq_low_bf16", $p0)>;
265 : Op<(call "vget_low", (call "__a64_vcvtq_low_bf16", $p0))>;
268 : Op<(call "__a32_vcvt_bf16", $p0)>;
272 (call "__a32_vcvt_bf16", $p0))>;
275 (call "vget_low", $p0))>;
278 : Op<(bitcast "R", (op "<<", (cast "int32_t", (bitcast "int16_t", $p0)),
1953 def : SOpInst<"vcmla" # ROT # "_lane", "...qI", type, Op<(call "vcmla" # ROT, $p0, $p1,
1954 (bitcast $p0, (dup_typed lanety , (call "vget_lane", (bitcast lanety, $p2), $p3))))>>;
1957 def : SOpInst<"vcmla" # ROT # "_lane", "...qI", "Q" # type, Op<(call "vcmla" # ROT, $p0, $p1,
1958 (bitcast $p0, (dup_typed laneqty , (call "vget_lane", (bitcast lanety, $p2), $p3))))>>;
1962 def : SOpInst<"vcmla" # ROT # "_laneq", "...QI", type, Op<(call "vcmla" # ROT, $p0, $p1,
1963 (bitcast $p0, (dup_typed lanety, (call "vget_lane", (bitcast laneqty, $p2), $p3))))>>;
1966 def : SOpInst<"vcmla" # ROT # "_laneq", "...QI", "Q" # type, Op<(call "vcmla" # ROT, $p0, $p1,
1967 … (bitcast $p0, (dup_typed laneqty , (call "vget_lane", (bitcast laneqty, $p2), $p3))))>>;