Lines Matching full:rc
92 const TargetRegisterClass &RC = *MRI.getRegClass(Reg); in mask() local
93 unsigned ID = RC.getID(); in mask()
96 bool IsSubLo = (Sub == HRI.getHexagonSubRegIndex(RC, Hexagon::ps_sub_lo)); in mask()
108 << TRI.getRegClassName(&RC) << '\n'; in mask()
117 for (auto &RC : {HvxVRRegClass, HvxWRRegClass, HvxQRRegClass, in getPhysRegBitWidth()
119 if (RC.contains(Reg)) in getPhysRegBitWidth()
120 return TRI.getRegSizeInBits(RC); in getPhysRegBitWidth()
123 if (const TargetRegisterClass *RC = TRI.getMinimalPhysRegClass(Reg)) in getPhysRegBitWidth() local
124 return TRI.getRegSizeInBits(*RC); in getPhysRegBitWidth()
131 const TargetRegisterClass &RC, unsigned Idx) const { in composeWithSubRegIndex() argument
133 return RC; in composeWithSubRegIndex()
137 bool IsSubLo = (Idx == HRI.getHexagonSubRegIndex(RC, Hexagon::ps_sub_lo)); in composeWithSubRegIndex()
138 bool IsSubHi = (Idx == HRI.getHexagonSubRegIndex(RC, Hexagon::ps_sub_hi)); in composeWithSubRegIndex()
142 switch (RC.getID()) { in composeWithSubRegIndex()
153 dbgs() << "Reg class id: " << RC.getID() << " idx: " << Idx << '\n'; in composeWithSubRegIndex()
250 #define rc(i) RegisterCell::ref(getCell(Reg[i], Inputs)) in evaluate() macro
272 return rc(N); in evaluate()
275 auto lo = [this] (const BT::RegisterCell &RC, uint16_t RW) in evaluate()
277 assert(RW <= RC.width()); in evaluate()
278 return eXTR(RC, 0, RW); in evaluate()
281 auto hi = [this] (const BT::RegisterCell &RC, uint16_t RW) in evaluate() argument
283 uint16_t W = RC.width(); in evaluate()
285 return eXTR(RC, W-RW, W); in evaluate()
288 auto half = [this] (const BT::RegisterCell &RC, unsigned N) in evaluate() argument
290 assert(N*16+16 <= RC.width()); in evaluate()
291 return eXTR(RC, N*16, N*16+16); in evaluate()
298 RegisterCell RC = eXTR(Rt, I*BW, I*BW+BW).cat(eXTR(Rs, I*BW, I*BW+BW)); in evaluate() local
301 RC.cat(eXTR(Rt, I*BW, I*BW+BW)).cat(eXTR(Rs, I*BW, I*BW+BW)); in evaluate()
304 return RC; in evaluate()
333 RegisterCell RC = RegisterCell::self(Reg[0].Reg, W0); in evaluate() local
334 RC.fill(0, L, BT::BitValue::Zero); in evaluate()
335 return rr0(RC, Outputs); in evaluate()
343 return rr0(rc(1), Outputs); in evaluate()
348 RegisterCell PC = eXTR(rc(1), 0, PW); in evaluate()
349 RegisterCell RC = RegisterCell(RW).insert(PC, BT::BitMask(0, PW-1)); in evaluate() local
350 RC.fill(PW, RW, BT::BitValue::Zero); in evaluate()
351 return rr0(RC, Outputs); in evaluate()
356 RegisterCell RC = RegisterCell::self(Reg[0].Reg, RW); in evaluate() local
357 RC.fill(PW, RW, BT::BitValue::Zero); in evaluate()
358 return rr0(eINS(RC, eXTR(rc(1), 0, PW), 0), Outputs); in evaluate()
371 RegisterCell CW = RegisterCell(W0).insert(rc(1), BT::BitMask(0, W1-1)); in evaluate()
372 RegisterCell RC = eADD(eSXT(CW, W1), rc(2)); in evaluate() local
373 return rr0(RC, Outputs); in evaluate()
377 return rr0(eADD(rc(1), rc(2)), Outputs); in evaluate()
379 return rr0(eADD(rc(1), eIMM(im(2), W0)), Outputs); in evaluate()
381 RegisterCell RC = eADD(eIMM(im(1), W0), eASL(rc(2), im(3))); in evaluate() local
382 return rr0(RC, Outputs); in evaluate()
385 RegisterCell RC = eADD(eIMM(im(1), W0), eLSR(rc(2), im(3))); in evaluate() local
386 return rr0(RC, Outputs); in evaluate()
389 RegisterCell RC = eADD(rc(1), eADD(rc(2), eIMM(im(3), W0))); in evaluate() local
390 return rr0(RC, Outputs); in evaluate()
393 RegisterCell M = eMLS(rc(2), eIMM(im(3), W0)); in evaluate()
394 RegisterCell RC = eADD(eIMM(im(1), W0), lo(M, W0)); in evaluate() local
395 return rr0(RC, Outputs); in evaluate()
398 RegisterCell M = eMLS(rc(2), rc(3)); in evaluate()
399 RegisterCell RC = eADD(eIMM(im(1), W0), lo(M, W0)); in evaluate() local
400 return rr0(RC, Outputs); in evaluate()
403 RegisterCell M = eMLS(eIMM(im(2), W0), rc(3)); in evaluate()
404 RegisterCell RC = eADD(rc(1), lo(M, W0)); in evaluate() local
405 return rr0(RC, Outputs); in evaluate()
408 RegisterCell M = eMLS(rc(2), eIMM(im(3), W0)); in evaluate()
409 RegisterCell RC = eADD(rc(1), lo(M, W0)); in evaluate() local
410 return rr0(RC, Outputs); in evaluate()
413 RegisterCell M = eMLS(rc(2), rc(3)); in evaluate()
414 RegisterCell RC = eADD(rc(1), lo(M, W0)); in evaluate() local
415 return rr0(RC, Outputs); in evaluate()
418 RegisterCell RC = eADD(rc(1), eSUB(eIMM(im(2), W0), rc(3))); in evaluate() local
419 return rr0(RC, Outputs); in evaluate()
422 RegisterCell RC = eADD(rc(1), eADD(rc(2), eIMM(im(3), W0))); in evaluate() local
423 return rr0(RC, Outputs); in evaluate()
426 RegisterCell RC = eADD(rc(1), eADD(rc(2), rc(3))); in evaluate() local
427 return rr0(RC, Outputs); in evaluate()
430 RegisterCell RC = eADD(rc(1), eSUB(rc(2), rc(3))); in evaluate() local
431 return rr0(RC, Outputs); in evaluate()
434 RegisterCell RC = eADD(rc(1), eASL(rc(2), im(3))); in evaluate() local
435 return rr0(RC, Outputs); in evaluate()
444 return rr0(eSUB(rc(1), rc(2)), Outputs); in evaluate()
446 return rr0(eSUB(eIMM(im(1), W0), rc(2)), Outputs); in evaluate()
448 RegisterCell RC = eSUB(eIMM(im(1), W0), eASL(rc(2), im(3))); in evaluate() local
449 return rr0(RC, Outputs); in evaluate()
452 RegisterCell RC = eSUB(eIMM(im(1), W0), eLSR(rc(2), im(3))); in evaluate() local
453 return rr0(RC, Outputs); in evaluate()
456 RegisterCell RC = eSUB(rc(1), eADD(rc(2), eIMM(im(3), W0))); in evaluate() local
457 return rr0(RC, Outputs); in evaluate()
460 RegisterCell RC = eSUB(rc(1), eADD(rc(2), rc(3))); in evaluate() local
461 return rr0(RC, Outputs); in evaluate()
465 return rr0(eSUB(eIMM(0, W0), rc(1)), Outputs); in evaluate()
468 RegisterCell M = eMLS(rc(1), rc(2)); in evaluate()
472 return rr0(eMLS(rc(1), rc(2)), Outputs); in evaluate()
474 return rr0(eADD(rc(1), eMLS(rc(2), rc(3))), Outputs); in evaluate()
476 return rr0(eSUB(rc(1), eMLS(rc(2), rc(3))), Outputs); in evaluate()
478 RegisterCell M = eMLS(rc(1), rc(2)); in evaluate()
482 RegisterCell M = eMLS(rc(2), eIMM(im(3), W0)); in evaluate()
483 RegisterCell RC = eADD(rc(1), lo(M, W0)); in evaluate() local
484 return rr0(RC, Outputs); in evaluate()
487 RegisterCell M = eMLS(rc(2), eIMM(im(3), W0)); in evaluate()
488 RegisterCell RC = eSUB(rc(1), lo(M, W0)); in evaluate() local
489 return rr0(RC, Outputs); in evaluate()
492 RegisterCell M = eMLS(rc(2), rc(3)); in evaluate()
493 RegisterCell RC = eADD(rc(1), lo(M, W0)); in evaluate() local
494 return rr0(RC, Outputs); in evaluate()
497 RegisterCell M = eMLS(rc(2), rc(3)); in evaluate()
498 RegisterCell RC = eSUB(rc(1), lo(M, W0)); in evaluate() local
499 return rr0(RC, Outputs); in evaluate()
502 RegisterCell M = eMLS(rc(1), eIMM(im(2), W0)); in evaluate()
506 RegisterCell M = eMLS(rc(1), eIMM(-im(2), W0)); in evaluate()
510 RegisterCell M = eMLS(rc(1), eIMM(im(2), W0)); in evaluate()
514 RegisterCell M = eMLU(rc(1), rc(2)); in evaluate()
518 return rr0(eMLU(rc(1), rc(2)), Outputs); in evaluate()
520 return rr0(eADD(rc(1), eMLU(rc(2), rc(3))), Outputs); in evaluate()
522 return rr0(eSUB(rc(1), eMLU(rc(2), rc(3))), Outputs); in evaluate()
528 return rr0(eAND(rc(1), eIMM(im(2), W0)), Outputs); in evaluate()
531 return rr0(eAND(rc(1), rc(2)), Outputs); in evaluate()
534 return rr0(eAND(rc(1), eNOT(rc(2))), Outputs); in evaluate()
536 RegisterCell RC = eAND(eIMM(im(1), W0), eASL(rc(2), im(3))); in evaluate() local
537 return rr0(RC, Outputs); in evaluate()
540 RegisterCell RC = eAND(eIMM(im(1), W0), eLSR(rc(2), im(3))); in evaluate() local
541 return rr0(RC, Outputs); in evaluate()
544 return rr0(eAND(rc(1), eAND(rc(2), rc(3))), Outputs); in evaluate()
546 return rr0(eAND(rc(1), eAND(rc(2), eNOT(rc(3)))), Outputs); in evaluate()
548 return rr0(eAND(rc(1), eORL(rc(2), rc(3))), Outputs); in evaluate()
550 return rr0(eAND(rc(1), eXOR(rc(2), rc(3))), Outputs); in evaluate()
552 return rr0(eORL(rc(1), eIMM(im(2), W0)), Outputs); in evaluate()
555 return rr0(eORL(rc(1), rc(2)), Outputs); in evaluate()
558 return rr0(eORL(rc(1), eNOT(rc(2))), Outputs); in evaluate()
560 RegisterCell RC = eORL(eIMM(im(1), W0), eASL(rc(2), im(3))); in evaluate() local
561 return rr0(RC, Outputs); in evaluate()
564 RegisterCell RC = eORL(eIMM(im(1), W0), eLSR(rc(2), im(3))); in evaluate() local
565 return rr0(RC, Outputs); in evaluate()
568 return rr0(eORL(rc(1), eAND(rc(2), rc(3))), Outputs); in evaluate()
570 return rr0(eORL(rc(1), eAND(rc(2), eNOT(rc(3)))), Outputs); in evaluate()
573 RegisterCell RC = eORL(rc(1), eAND(rc(2), eIMM(im(3), W0))); in evaluate() local
574 return rr0(RC, Outputs); in evaluate()
577 RegisterCell RC = eORL(rc(1), eORL(rc(2), eIMM(im(3), W0))); in evaluate() local
578 return rr0(RC, Outputs); in evaluate()
581 return rr0(eORL(rc(1), eORL(rc(2), rc(3))), Outputs); in evaluate()
583 return rr0(eORL(rc(1), eXOR(rc(2), rc(3))), Outputs); in evaluate()
586 return rr0(eXOR(rc(1), rc(2)), Outputs); in evaluate()
588 return rr0(eXOR(rc(1), eAND(rc(2), rc(3))), Outputs); in evaluate()
590 return rr0(eXOR(rc(1), eAND(rc(2), eNOT(rc(3)))), Outputs); in evaluate()
592 return rr0(eXOR(rc(1), eORL(rc(2), rc(3))), Outputs); in evaluate()
594 return rr0(eXOR(rc(1), eXOR(rc(2), rc(3))), Outputs); in evaluate()
597 return rr0(eNOT(rc(1)), Outputs); in evaluate()
601 return rr0(eASL(rc(1), im(2)), Outputs); in evaluate()
603 return rr0(eASL(rc(1), 16), Outputs); in evaluate()
606 return rr0(eADD(rc(1), eASL(rc(2), im(3))), Outputs); in evaluate()
609 return rr0(eSUB(rc(1), eASL(rc(2), im(3))), Outputs); in evaluate()
612 return rr0(eAND(rc(1), eASL(rc(2), im(3))), Outputs); in evaluate()
615 return rr0(eORL(rc(1), eASL(rc(2), im(3))), Outputs); in evaluate()
618 return rr0(eXOR(rc(1), eASL(rc(2), im(3))), Outputs); in evaluate()
626 return rr0(eASR(rc(1), im(2)), Outputs); in evaluate()
628 return rr0(eASR(rc(1), 16), Outputs); in evaluate()
631 return rr0(eADD(rc(1), eASR(rc(2), im(3))), Outputs); in evaluate()
634 return rr0(eSUB(rc(1), eASR(rc(2), im(3))), Outputs); in evaluate()
637 return rr0(eAND(rc(1), eASR(rc(2), im(3))), Outputs); in evaluate()
640 return rr0(eORL(rc(1), eASR(rc(2), im(3))), Outputs); in evaluate()
645 RegisterCell XC = eSXT(rc(1).cat(eIMM(0, W0)), W0); in evaluate()
646 RegisterCell RC = eASR(eADD(eASR(XC, im(2)), eIMM(1, 2*W0)), 1); in evaluate() local
647 return rr0(eXTR(RC, 0, W0), Outputs); in evaluate()
652 return rr0(rc(1), Outputs); in evaluate()
654 RegisterCell XC = eSXT(rc(1).cat(eIMM(0, W0)), W0); in evaluate()
655 RegisterCell RC = eLSR(eADD(eASR(XC, S-1), eIMM(1, 2*W0)), 1); in evaluate() local
656 return rr0(eXTR(RC, 0, W0), Outputs); in evaluate()
666 return rr0(eLSR(rc(1), im(2)), Outputs); in evaluate()
669 return rr0(eADD(rc(1), eLSR(rc(2), im(3))), Outputs); in evaluate()
672 return rr0(eSUB(rc(1), eLSR(rc(2), im(3))), Outputs); in evaluate()
675 return rr0(eAND(rc(1), eLSR(rc(2), im(3))), Outputs); in evaluate()
678 return rr0(eORL(rc(1), eLSR(rc(2), im(3))), Outputs); in evaluate()
681 return rr0(eXOR(rc(1), eLSR(rc(2), im(3))), Outputs); in evaluate()
684 RegisterCell RC = rc(1); in evaluate() local
685 RC[im(2)] = BT::BitValue::Zero; in evaluate()
686 return rr0(RC, Outputs); in evaluate()
689 RegisterCell RC = rc(1); in evaluate() local
690 RC[im(2)] = BT::BitValue::One; in evaluate()
691 return rr0(RC, Outputs); in evaluate()
694 RegisterCell RC = rc(1); in evaluate() local
696 RC[BX] = RC[BX].is(0) ? BT::BitValue::One in evaluate()
697 : RC[BX].is(1) ? BT::BitValue::Zero in evaluate()
699 return rr0(RC, Outputs); in evaluate()
709 RegisterCell BF1 = eXTR(rc(1), 0, BX), BF2 = eXTR(rc(1), BX, W1); in evaluate()
710 RegisterCell RC = eINS(eINS(RZ, BF1, 0), BF2, W1); in evaluate() local
711 return rr0(RC, Outputs); in evaluate()
723 RegisterCell Pad = (Wd+Of > W0) ? rc(1).cat(eIMM(0, Wd+Of-W0)) : rc(1); in evaluate()
726 RegisterCell RC = RegisterCell(W0).insert(Ext, BT::BitMask(0, Wd-1)); in evaluate() local
728 return rr0(eZXT(RC, Wd), Outputs); in evaluate()
729 return rr0(eSXT(RC, Wd), Outputs); in evaluate()
739 return rr0(rc(1), Outputs); in evaluate()
740 return rr0(eINS(rc(1), eXTR(rc(2), 0, Wd), Of), Outputs); in evaluate()
763 RegisterCell R1 = rc(1); in evaluate()
764 RegisterCell R2 = rc(2); in evaluate()
765 RegisterCell RC = half(R2, LoH).cat(half(R1, HiH)); in evaluate() local
766 return rr0(RC, Outputs); in evaluate()
771 RegisterCell R1 = rc(1); in evaluate()
772 RegisterCell R2 = rc(2); in evaluate()
773 RegisterCell RC = half(R2, 0).cat(half(R1, 0)).cat(half(R2, 1)) in evaluate() local
775 return rr0(RC, Outputs); in evaluate()
778 RegisterCell RC = shuffle(rc(1), rc(2), 8, false); in evaluate() local
779 return rr0(RC, Outputs); in evaluate()
782 RegisterCell RC = shuffle(rc(1), rc(2), 16, false); in evaluate() local
783 return rr0(RC, Outputs); in evaluate()
786 RegisterCell RC = shuffle(rc(1), rc(2), 8, true); in evaluate() local
787 return rr0(RC, Outputs); in evaluate()
790 RegisterCell RC = shuffle(rc(1), rc(2), 16, true); in evaluate() local
791 return rr0(RC, Outputs); in evaluate()
797 RegisterCell R1 = rc(1); in evaluate()
798 RegisterCell RC(WR); in evaluate() local
802 RC.fill(i*8, i*8+8, F); in evaluate()
804 return rr0(RC, Outputs); in evaluate()
813 BT::BitValue PC0 = rc(1)[0]; in evaluate()
828 return rr0(eSXT(rc(1), 8), Outputs); in evaluate()
830 return rr0(eSXT(rc(1), 16), Outputs); in evaluate()
834 RegisterCell RC = eSXT(rc(1).cat(eIMM(0, W1)), W1); in evaluate() local
835 return rr0(RC, Outputs); in evaluate()
838 return rr0(eZXT(rc(1), 8), Outputs); in evaluate()
840 return rr0(eZXT(rc(1), 16), Outputs); in evaluate()
858 return rr0(eCLB(rc(1), false/*bit*/, 32), Outputs); in evaluate()
861 return rr0(eCLB(rc(1), true/*bit*/, 32), Outputs); in evaluate()
865 RegisterCell R1 = rc(1); in evaluate()
873 return rr0(eCTB(rc(1), false/*bit*/, 32), Outputs); in evaluate()
876 return rr0(eCTB(rc(1), true/*bit*/, 32), Outputs); in evaluate()
882 RegisterCell P1 = rc(1); in evaluate()
894 RegisterCell RC(W0); in evaluate() local
895 RC.fill(0, W0, (All1 ? BT::BitValue::One : BT::BitValue::Zero)); in evaluate()
896 return rr0(RC, Outputs); in evaluate()
899 RegisterCell P1 = rc(1); in evaluate()
911 RegisterCell RC(W0); in evaluate() local
912 RC.fill(0, W0, (Has1 ? BT::BitValue::One : BT::BitValue::Zero)); in evaluate()
913 return rr0(RC, Outputs); in evaluate()
916 return rr0(eAND(rc(1), rc(2)), Outputs); in evaluate()
918 return rr0(eAND(rc(1), eNOT(rc(2))), Outputs); in evaluate()
920 return rr0(eNOT(rc(1)), Outputs); in evaluate()
922 return rr0(eORL(rc(1), rc(2)), Outputs); in evaluate()
924 return rr0(eORL(rc(1), eNOT(rc(2))), Outputs); in evaluate()
926 return rr0(eXOR(rc(1), rc(2)), Outputs); in evaluate()
928 return rr0(eAND(rc(1), eAND(rc(2), rc(3))), Outputs); in evaluate()
930 return rr0(eAND(rc(1), eAND(rc(2), eNOT(rc(3)))), Outputs); in evaluate()
932 return rr0(eAND(rc(1), eORL(rc(2), rc(3))), Outputs); in evaluate()
934 return rr0(eAND(rc(1), eORL(rc(2), eNOT(rc(3)))), Outputs); in evaluate()
936 return rr0(eORL(rc(1), eAND(rc(2), rc(3))), Outputs); in evaluate()
938 return rr0(eORL(rc(1), eAND(rc(2), eNOT(rc(3)))), Outputs); in evaluate()
940 return rr0(eORL(rc(1), eORL(rc(2), rc(3))), Outputs); in evaluate()
942 return rr0(eORL(rc(1), eORL(rc(2), eNOT(rc(3)))), Outputs); in evaluate()
953 BT::BitValue V = rc(1)[im(2)]; in evaluate()
971 RegisterCell RC = RegisterCell::self(DefR, RW); in evaluate() local
972 RC.fill(PW, RW, BT::BitValue::Zero); in evaluate()
973 putCell(PD, RC, Outputs); in evaluate()
980 #undef rc in evaluate()