Lines Matching full:fragment
46 (SELBr64_cond R64C:$rTrue, R64C:$rFalse, (FSMr32 compare.Fragment))>;
51 (XORIr32 compare.Fragment, -1)>;
54 // The i64 seteq fragment that does the scalar->vector conversion and
60 // The i64 seteq fragment that does the vector comparison
70 def r64: CodeFrag<(i32 (COPY_TO_REGCLASS CEQr64compare.Fragment, R32C))>;
71 def v2i64: CodeFrag<(i32 (COPY_TO_REGCLASS CEQv2i64compare.Fragment, R32C))>;
75 (FSMv4i32 CEQr64compare.Fragment), R32C))>;
77 (FSMv4i32 CEQv2i64compare.Fragment), R32C))>;
82 def : Pat<(seteq R64C:$rA, R64C:$rB), I64EQr64.Fragment>;
83 def : Pat<(seteq (v2i64 VECREG:$rA), (v2i64 VECREG:$rB)), I64EQv2i64.Fragment>;
102 CodeFrag<(SELBv2i64 CLGTr64ugt.Fragment,
103 (XSWDv2i64 CLGTr64ugt.Fragment),
104 CLGTr64eq.Fragment)>;
113 CodeFrag<(SELBv2i64 CLGTv2i64ugt.Fragment,
114 (XSWDv2i64 CLGTr64ugt.Fragment),
115 CLGTv2i64eq.Fragment)>;
119 def r64: CodeFrag<(i32 (COPY_TO_REGCLASS CLGTr64compare.Fragment, R32C))>;
120 def v2i64: CodeFrag<CLGTv2i64compare.Fragment>;
124 (FSMv4i32 CLGTr64compare.Fragment), R32C))>;
126 (FSMv4i32 CLGTv2i64compare.Fragment), R32C))>;
131 def : Pat<(setugt R64C:$rA, R64C:$rB), I64LGTr64.Fragment>;
133 // I64LGTv2i64.Fragment>;
144 CodeFrag<(CGTIv4i32 (GBv4i32 (ORv4i32 CLGTr64ugt.Fragment,
145 CLGTr64eq.Fragment)), 0xb)>;
148 CodeFrag<(CEQIv4i32 (GBv4i32 (ORv4i32 CLGTv2i64ugt.Fragment,
149 CLGTv2i64eq.Fragment)), 0xf)>;
153 def r64: CodeFrag<(i32 (COPY_TO_REGCLASS CLGEr64compare.Fragment, R32C))>;
154 def v2i64: CodeFrag<CLGEv2i64compare.Fragment>;
158 (FSMv4i32 CLGEr64compare.Fragment), R32C))>;
160 (FSMv4i32 CLGEv2i64compare.Fragment),R32C))>;
165 def : Pat<(setuge R64C:$rA, R64C:$rB), I64LGEr64.Fragment>;
167 I64LGEv2i64.Fragment>;
187 CodeFrag<(SELBv2i64 CGTr64sgt.Fragment,
188 (XSWDv2i64 CGTr64sgt.Fragment),
189 CGTr64eq.Fragment)>;
198 CodeFrag<(SELBv2i64 CGTv2i64sgt.Fragment,
199 (XSWDv2i64 CGTr64sgt.Fragment),
200 CGTv2i64eq.Fragment)>;
204 def r64: CodeFrag<(i32 (COPY_TO_REGCLASS CGTr64compare.Fragment, R32C))>;
205 def v2i64: CodeFrag<CGTv2i64compare.Fragment>;
209 (FSMv4i32 CGTr64compare.Fragment), R32C))>;
211 (FSMv4i32 CGTv2i64compare.Fragment), R32C))>;
216 def : Pat<(setgt R64C:$rA, R64C:$rB), I64GTr64.Fragment>;
218 // I64GTv2i64.Fragment>;
229 CodeFrag<(CGTIv4i32 (GBv4i32 (ORv4i32 CGTr64sgt.Fragment,
230 CGTr64eq.Fragment)), 0xb)>;
233 CodeFrag<(CEQIv4i32 (GBv4i32 (ORv4i32 CGTv2i64sgt.Fragment,
234 CGTv2i64eq.Fragment)), 0xf)>;
238 def r64: CodeFrag<(i32 (COPY_TO_REGCLASS CGEr64compare.Fragment, R32C))>;
239 def v2i64: CodeFrag<CGEv2i64compare.Fragment>;
242 def r64mask: CodeFrag<(i32 (COPY_TO_REGCLASS (FSMv4i32 CGEr64compare.Fragment),R32C))>;
243 def v2i64mask: CodeFrag<(i32 (COPY_TO_REGCLASS (FSMv4i32 CGEv2i64compare.Fragment),R32C))>;
248 def : Pat<(setge R64C:$rA, R64C:$rB), I64GEr64.Fragment>;
250 I64GEv2i64.Fragment>;
267 v2i64_add_1<lhs, rhs, v2i64_add_cg<lhs, rhs>.Fragment, cg_mask>;
272 (v4i32 VECREG:$rCGmask)>.Fragment, R64C)>;
278 (v4i32 VECREG:$rCGmask)>.Fragment>;
294 (COPY_TO_REGCLASS R64C:$rB, VECREG)>.Fragment,
295 (v4i32 VECREG:$rCGmask)>.Fragment, R64C)>;
302 (v2i64 VECREG:$rB)>.Fragment,
303 (v4i32 VECREG:$rCGmask)>.Fragment>;
340 (MPYUv4i32 v2i64_mul_bshlq4<rB>.Fragment, // a1 x b3
341 v2i64_mul_ahi64<rA>.Fragment),
342 (MPYHv4i32 v2i64_mul_ahi64<rA>.Fragment, // a0 x b3
343 v2i64_mul_bshlq4<rB>.Fragment)),
345 (MPYHv4i32 v2i64_mul_bhi64<rB>.Fragment,
346 v2i64_mul_ashlq4<rA>.Fragment),
348 (MPYHv4i32 v2i64_mul_ashlq4<rA>.Fragment,
349 v2i64_mul_bhi64<rB>.Fragment),
351 (MPYUv4i32 v2i64_mul_ashlq4<rA>.Fragment,
352 v2i64_mul_bhi64<rB>.Fragment),
354 (MPYHv4i32 v2i64_mul_ashlq2<rA>.Fragment,
355 v2i64_mul_bshlq2<rB>.Fragment),
356 (MPYUv4i32 v2i64_mul_ashlq2<rA>.Fragment,
357 v2i64_mul_bshlq2<rB>.Fragment))))))>;
360 CodeFrag<(MPYUv4i32 v2i64_mul_alo64<rA>.Fragment,
361 v2i64_mul_blo64<rB>.Fragment)>;
365 (MPYHHUv4i32 v2i64_mul_alo64<rA>.Fragment,
366 v2i64_mul_bshlq2<rB>.Fragment), 0x2),
372 (MPYHHUv4i32 v2i64_mul_blo64<rB>.Fragment,
373 v2i64_mul_ashlq2<rA>.Fragment), 0x2),
378 v2i64_add<v2i64_add<v2i64_mul_a3_b3<rA, rB>.Fragment,
379 v2i64_mul_a2_b3<rA, rB>.Fragment, rCGmask>.Fragment,
380 v2i64_mul_a3_b2<rA, rB>.Fragment, rCGmask>;
383 v2i64_add<v2i64_lowsum<rA, rB, rCGmask>.Fragment,
384 (SELBv4i32 v2i64_highprod<rA, rB>.Fragment,
392 (v4i32 VECREG:$rCGmask)>.Fragment, R64C)>;
397 (v4i32 VECREG:$rCGmask)>.Fragment>;