Home | History | Annotate | Download | only in Hexagon

Lines Matching full:src2

48             (sra (i64 (add (i64 (sra I64:$src1, u6ImmPred:$src2)), 1)),
51 bits<6> src2;
52 let Inst{13-8} = src2;
57 : MInst<(outs DoubleRegs:$dst), (ins DoubleRegs:$src1, u6Imm:$src2),
58 "$dst = asrrnd($src1, #$src2)">;
110 (ins PredRegs:$src1, f32Ext:$src2),
111 "if ($src1) $dst = #$src2", []>,
117 (ins PredRegs:$src1, f32Ext:$src2),
118 "if (!$src1) $dst = #$src2", []>,
179 def: Pat<(f32 (fadd F32:$src1, F32:$src2)),
180 (F2_sfadd F32:$src1, F32:$src2)>;
182 def: Pat<(f32 (fsub F32:$src1, F32:$src2)),
183 (F2_sfsub F32:$src1, F32:$src2)>;
185 def: Pat<(f32 (fmul F32:$src1, F32:$src2)),
186 (F2_sfmpy F32:$src1, F32:$src2)>;
194 def: Pat<(f32 (select (i1 (setolt F32:$src1, F32:$src2)),
195 F32:$src1, F32:$src2)),
196 (F2_sfmin F32:$src1, F32:$src2)>;
198 def: Pat<(f32 (select (i1 (setogt F32:$src1, F32:$src2)),
199 F32:$src2, F32:$src1)),
200 (F2_sfmin F32:$src1, F32:$src2)>;
202 def: Pat<(f32 (select (i1 (setogt F32:$src1, F32:$src2)),
203 F32:$src1, F32:$src2)),
204 (F2_sfmax F32:$src1, F32:$src2)>;
206 def: Pat<(f32 (select (i1 (setolt F32:$src1, F32:$src2)),
207 F32:$src2, F32:$src1)),
208 (F2_sfmax F32:$src1, F32:$src2)>;
241 : ALU64Inst <(outs PredRegs:$dst), (ins RC:$src1, RC:$src2),
242 "$dst = "#mnemonic#"($src1, $src2)", pattern,
247 bits<5> src2;
253 let Inst{12-8} = src2;
260 [(set I1:$dst, (OpNode F64:$src1, F64:$src2))]> {
267 [(set I1:$dst, (OpNode F32:$src1, F32:$src2))]> {
289 def: Pat<(i1 (cmpOp F32:$src1, F32:$src2)),
290 (IntMI F32:$src1, F32:$src2)>;
292 def: Pat<(i1 (cmpOp F64:$src1, F64:$src2)),
293 (DoubleMI F64:$src1, F64:$src2)>;
306 def: Pat<(i1 (cmpOp F32:$src1, F32:$src2)),
307 (C2_or (F2_sfcmpuo F32:$src1, F32:$src2),
308 (IntMI F32:$src1, F32:$src2))>;
311 def: Pat<(i1 (cmpOp F64:$src1, F64:$src2)),
312 (C2_or (F2_dfcmpuo F64:$src1, F64:$src2),
313 (DoubleMI F64:$src1, F64:$src2))>;
331 def: Pat<(i1 (seteq (i1 (cmpOp F32:$src1, F32:$src2)), 0)),
332 (C2_not (IntMI F32:$src1, F32:$src2))>;
333 def: Pat<(i1 (seteq (i1 (cmpOp F32:$src1, F32:$src2)), 1)),
334 (IntMI F32:$src1, F32:$src2)>;
335 def: Pat<(i1 (setne (i1 (cmpOp F32:$src1, F32:$src2)), 0)),
336 (IntMI F32:$src1, F32:$src2)>;
337 def: Pat<(i1 (setne (i1 (cmpOp F32:$src1, F32:$src2)), 1)),
338 (C2_not (IntMI F32:$src1, F32:$src2))>;
341 def : Pat<(i1 (seteq (i1 (cmpOp F64:$src1, F64:$src2)), 0)),
342 (C2_not (DoubleMI F64:$src1, F64:$src2))>;
343 def : Pat<(i1 (seteq (i1 (cmpOp F64:$src1, F64:$src2)), 1)),
344 (DoubleMI F64:$src1, F64:$src2)>;
345 def : Pat<(i1 (setne (i1 (cmpOp F64:$src1, F64:$src2)), 0)),
346 (DoubleMI F64:$src1, F64:$src2)>;
347 def : Pat<(i1 (setne (i1 (cmpOp F64:$src1, F64:$src2)), 1)),
348 (C2_not (DoubleMI F64:$src1, F64:$src2))>;
366 def: Pat<(i1 (seteq (i1 (cmpOp F32:$src1, F32:$src2)), 0)),
367 (C2_not (IntMI F32:$src2, F32:$src1))>;
368 def: Pat<(i1 (seteq (i1 (cmpOp F32:$src1, F32:$src2)), 1)),
369 (IntMI F32:$src2, F32:$src1)>;
370 def: Pat<(i1 (setne (i1 (cmpOp F32:$src1, F32:$src2)), 0)),
371 (IntMI F32:$src2, F32:$src1)>;
372 def: Pat<(i1 (setne (i1 (cmpOp F32:$src1, F32:$src2)), 1)),
373 (C2_not (IntMI F32:$src2, F32:$src1))>;
376 def: Pat<(i1 (seteq (i1 (cmpOp F64:$src1, F64:$src2)), 0)),
377 (C2_not (DoubleMI F64:$src2, F64:$src1))>;
378 def: Pat<(i1 (seteq (i1 (cmpOp F64:$src1, F64:$src2)), 1)),
379 (DoubleMI F64:$src2, F64:$src1)>;
380 def: Pat<(i1 (setne (i1 (cmpOp F64:$src1, F64:$src2)), 0)),
381 (DoubleMI F64:$src2, F64:$src1)>;
382 def: Pat<(i1 (setne (i1 (cmpOp F64:$src1, F64:$src2)), 0)),
383 (C2_not (DoubleMI F64:$src2, F64:$src1))>;
392 def: Pat<(i1 (seto F32:$src1, F32:$src2)),
393 (C2_not (F2_sfcmpuo F32:$src2, F32:$src1))>;
394 def: Pat<(i1 (seto F32:$src1, fpimm:$src2)),
395 (C2_not (F2_sfcmpuo (TFRI_f fpimm:$src2), F32:$src1))>;
396 def: Pat<(i1 (seto F64:$src1, F64:$src2)),
397 (C2_not (F2_dfcmpuo F64:$src2, F64:$src1))>;
398 def: Pat<(i1 (seto F64:$src1, fpimm:$src2)),
399 (C2_not (F2_dfcmpuo (CONST64_Float_Real fpimm:$src2), F64:$src1))>;
404 def: Pat<(i1 (setolt F32:$src1, F32:$src2)),
405 (F2_sfcmpgt F32:$src2, F32:$src1)>;
406 def: Pat<(i1 (setolt F32:$src1, fpimm:$src2)),
407 (F2_sfcmpgt (f32 (TFRI_f fpimm:$src2)), F32:$src1)>;
408 def: Pat<(i1 (setolt F64:$src1, F64:$src2)),
409 (F2_dfcmpgt F64:$src2, F64:$src1)>;
410 def: Pat<(i1 (setolt F64:$src1, fpimm:$src2)),
411 (F2_dfcmpgt (CONST64_Float_Real fpimm:$src2), F64:$src1)>;
416 def: Pat<(i1 (setult F32:$src1, F32:$src2)),
417 (C2_or (F2_sfcmpuo F32:$src1, F32:$src2),
418 (F2_sfcmpgt F32:$src2, F32:$src1))>;
419 def: Pat<(i1 (setult F32:$src1, fpimm:$src2)),
420 (C2_or (F2_sfcmpuo F32:$src1, (TFRI_f fpimm:$src2)),
421 (F2_sfcmpgt (TFRI_f fpimm:$src2), F32:$src1))>;
422 def: Pat<(i1 (setult F64:$src1, F64:$src2)),
423 (C2_or (F2_dfcmpuo F64:$src1, F64:$src2),
424 (F2_dfcmpgt F64:$src2, F64:$src1))>;
425 def: Pat<(i1 (setult F64:$src1, fpimm:$src2)),
426 (C2_or (F2_dfcmpuo F64:$src1, (CONST64_Float_Real fpimm:$src2)),
427 src2), F64:$src1))>;
433 def: Pat<(i1 (setole F32:$src1, F32:$src2)),
434 (F2_sfcmpge F32:$src2, F32:$src1)>;
435 def: Pat<(i1 (setole F32:$src1, fpimm:$src2)),
436 (F2_sfcmpge (TFRI_f fpimm:$src2), F32:$src1)>;
439 def: Pat<(i1 (setole F64:$src1, F64:$src2)),
440 (F2_dfcmpge F64:$src2, F64:$src1)>;
441 def: Pat<(i1 (setole F64:$src1, fpimm:$src2)),
442 (F2_dfcmpge (CONST64_Float_Real fpimm:$src2), F64:$src1)>;
448 def: Pat<(i1 (setule F32:$src1, F32:$src2)),
449 (C2_or (F2_sfcmpuo F32:$src1, F32:$src2),
450 (F2_sfcmpge F32:$src2, F32:$src1))>;
451 def: Pat<(i1 (setule F32:$src1, fpimm:$src2)),
452 (C2_or (F2_sfcmpuo F32:$src1, (TFRI_f fpimm:$src2)),
453 (F2_sfcmpge (TFRI_f fpimm:$src2), F32:$src1))>;
454 def: Pat<(i1 (setule F64:$src1, F64:$src2)),
455 (C2_or (F2_dfcmpuo F64:$src1, F64:$src2),
456 (F2_dfcmpge F64:$src2, F64:$src1))>;
457 def: Pat<(i1 (setule F64:$src1, fpimm:$src2)),
458 (C2_or (F2_dfcmpuo F64:$src1, (CONST64_Float_Real fpimm:$src2)),
459 (F2_dfcmpge (CONST64_Float_Real fpimm:$src2), F64:$src1))>;
464 def: Pat<(i1 (setone F32:$src1, F32:$src2)),
465 (C2_not (F2_sfcmpeq F32:$src1, F32:$src2))>;
466 def: Pat<(i1 (setone F64:$src1, F64:$src2)),
467 (C2_not (F2_dfcmpeq F64:$src1, F64:$src2))>;
468 def: Pat<(i1 (setone F32:$src1, fpimm:$src2)),
469 (C2_not (F2_sfcmpeq F32:$src1, (TFRI_f fpimm:$src2)))>;
470 def: Pat<(i1 (setone F64:$src1, fpimm:$src2)),
471 (C2_not (F2_dfcmpeq F64:$src1, (CONST64_Float_Real fpimm:$src2)))>;
476 def: Pat<(i1 (setune F32:$src1, F32:$src2)),
477 (C2_or (F2_sfcmpuo F32:$src1, F32:$src2),
478 (C2_not (F2_sfcmpeq F32:$src1, F32:$src2)))>;
479 def: Pat<(i1 (setune F64:$src1, F64:$src2)),
480 (C2_or (F2_dfcmpuo F64:$src1, F64:$src2),
481 (C2_not (F2_dfcmpeq F64:$src1, F64:$src2)))>;
482 def: Pat<(i1 (setune F32:$src1, fpimm:$src2)),
483 (C2_or (F2_sfcmpuo F32:$src1, (TFRI_f fpimm:$src2)),
484 (C2_not (F2_sfcmpeq F32:$src1, (TFRI_f fpimm:$src2))))>;
485 def: Pat<(i1 (setune F64:$src1, fpimm:$src2)),
486 (C2_or (F2_dfcmpuo F64:$src1, (CONST64_Float_Real fpimm:$src2)),
488 (CONST64_Float_Real fpimm:$src2))))>;
494 def: Pat<(i1 (setlt F32:$src1, F32:$src2)),
495 (F2_sfcmpgt F32:$src2, F32:$src1)>;
496 def: Pat<(i1 (setlt F32:$src1, fpimm:$src2)),
497 (F2_sfcmpgt (TFRI_f fpimm:$src2), F32:$src1)>;
498 def: Pat<(i1 (setlt F64:$src1, F64:$src2)),
499 (F2_dfcmpgt F64:$src2, F64:$src1)>;
500 def: Pat<(i1 (setlt F64:$src1, fpimm:$src2)),
501 (F2_dfcmpgt (CONST64_Float_Real fpimm:$src2), F64:$src1)>;
505 def: Pat<(i1 (setle F32:$src1, F32:$src2)),
506 (F2_sfcmpge F32:$src2, F32:$src1)>;
507 def: Pat<(i1 (setle F32:$src1, fpimm:$src2)),
508 (F2_sfcmpge (TFRI_f fpimm:$src2), F32:$src1)>;
511 def: Pat<(i1 (setle F64:$src1, F64:$src2)),
512 (F2_dfcmpge F64:$src2, F64:$src1)>;
513 def: Pat<(i1 (setle F64:$src1, fpimm:$src2)),
514 (F2_dfcmpge (CONST64_Float_Real fpimm:$src2), F64:$src1)>;
517 def: Pat<(i1 (setne F32:$src1, F32:$src2)),
518 (C2_not (F2_sfcmpeq F32:$src1, F32:$src2))>;
519 def: Pat<(i1 (setne F64:$src1, F64:$src2)),
520 (C2_not (F2_dfcmpeq F64:$src1, F64:$src2))>;
521 def: Pat<(i1 (setne F32:$src1, fpimm:$src2)),
522 (C2_not (F2_sfcmpeq F32:$src1, (TFRI_f fpimm:$src2)))>;
523 def: Pat<(i1 (setne F64:$src1, fpimm:$src2)),
524 (C2_not (F2_dfcmpeq F64:$src1, (CONST64_Float_Real fpimm:$src2)))>;
722 def : Pat <(f32 (fma F32:$src2, F32:$src3, F32:$src1)),
723 (F2_sffma F32:$src1, F32:$src2, F32:$src3)>;
752 (ins PredRegs:$src1, IntRegs:$src2, f32Ext:$src3),
753 "$dst = mux($src1, $src2, #$src3)",
754 [(set F32:$dst, (f32 (select I1:$src1, F32:$src2, fpimm:$src3)))]>,
760 (ins PredRegs:$src1, f32Ext:$src2, IntRegs:$src3),
761 "$dst = mux($src1, #$src2, $src3)",
762 [(set F32:$dst, (f32 (select I1:$src1, fpimm:$src2, F32:$src3)))]>,
765 def: Pat<(select I1:$src1, F32:$src2, F32:$src3),
766 (C2_mux I1:$src1, F32:$src2, F32:$src3)>,
769 def: Pat<(select (i1 (setult F32:$src1, F32:$src2)), F32:$src3, F32:$src4),
770 (C2_mux (F2_sfcmpgt F32:$src2, F32:$src1), F32:$src4, F32:$src3)>,
773 def: Pat<(select I1:$src1, F64:$src2, F64:$src3),
774 (C2_vmux I1:$src1, F64:$src2, F64:$src3)>,
777 def: Pat<(select (i1 (setult F64:$src1, F64:$src2)), F64:$src3, F64:$src4),
778 (C2_vmux (F2_dfcmpgt F64:$src2, F64:$src1), F64:$src3, F64:$src4)>,
783 def: Pat<(select (not I1:$src1), fpimm:$src2, F32:$src3),
784 (MUX_ir_f I1:$src1, F32:$src3, fpimm:$src2)>,
789 def: Pat<(select (not I1:$src1), F32:$src2, fpimm:$src3),
790 (MUX_ri_f I1:$src1, fpimm:$src3, F32:$src2)>,