Lines Matching +full:2 +full:gb

89 bool HexagonMCInstrInfo::isDuplexPairMatch(unsigned Ga, unsigned Gb) {  in isDuplexPairMatch()  argument
95 return (Gb == HexagonII::HSIG_L1 || Gb == HexagonII::HSIG_A); in isDuplexPairMatch()
97 return (Gb == HexagonII::HSIG_L1 || Gb == HexagonII::HSIG_L2 || in isDuplexPairMatch()
98 Gb == HexagonII::HSIG_A); in isDuplexPairMatch()
100 return (Gb == HexagonII::HSIG_L1 || Gb == HexagonII::HSIG_L2 || in isDuplexPairMatch()
101 Gb == HexagonII::HSIG_S1 || Gb == HexagonII::HSIG_A); in isDuplexPairMatch()
103 return (Gb == HexagonII::HSIG_L1 || Gb == HexagonII::HSIG_L2 || in isDuplexPairMatch()
104 Gb == HexagonII::HSIG_S1 || Gb == HexagonII::HSIG_S2 || in isDuplexPairMatch()
105 Gb == HexagonII::HSIG_A); in isDuplexPairMatch()
107 return (Gb == HexagonII::HSIG_A); in isDuplexPairMatch()
109 return (Gb == HexagonII::HSIG_Compound); in isDuplexPairMatch()
114 unsigned HexagonMCInstrInfo::iClassOfDuplexPair(unsigned Ga, unsigned Gb) { in iClassOfDuplexPair() argument
120 switch (Gb) { in iClassOfDuplexPair()
130 switch (Gb) { in iClassOfDuplexPair()
142 switch (Gb) { in iClassOfDuplexPair()
156 switch (Gb) { in iClassOfDuplexPair()
172 switch (Gb) { in iClassOfDuplexPair()
180 switch (Gb) { in iClassOfDuplexPair()
198 // Rd = memw(Rs+#u4:2) in getDuplexCandidateGroup()
204 // Rd = memw(r29+#u5:2) in getDuplexCandidateGroup()
207 Hexagon::R29 == SrcReg && inRange<5, 2>(MCI, 2)) { in getDuplexCandidateGroup()
210 // Rd = memw(Rs+#u4:2) in getDuplexCandidateGroup()
212 inRange<4, 2>(MCI, 2)) { in getDuplexCandidateGroup()
223 inRange<4>(MCI, 2)) { in getDuplexCandidateGroup()
232 // Rd = memw(r29+#u5:2) - Handled above. in getDuplexCandidateGroup()
244 inRange<3, 1>(MCI, 2)) { in getDuplexCandidateGroup()
254 inRange<3>(MCI, 2)) { in getDuplexCandidateGroup()
264 inRange<5, 3>(MCI, 2)) { in getDuplexCandidateGroup()
313 // memw(Rs+#u4:2) = Rt in getDuplexCandidateGroup()
317 // memw(r29+#u5:2) = Rt in getDuplexCandidateGroup()
319 Src2Reg = MCI.getOperand(2).getReg(); in getDuplexCandidateGroup()
322 Hexagon::R29 == Src1Reg && inRange<5, 2>(MCI, 1)) { in getDuplexCandidateGroup()
325 // memw(Rs+#u4:2) = Rt in getDuplexCandidateGroup()
328 inRange<4, 2>(MCI, 1)) { in getDuplexCandidateGroup()
335 Src2Reg = MCI.getOperand(2).getReg(); in getDuplexCandidateGroup()
346 // memw(r29+#u5:2) = Rt in getDuplexCandidateGroup()
348 // memw(Rs+#u4:2) = #U1 in getDuplexCandidateGroup()
354 Src2Reg = MCI.getOperand(2).getReg(); in getDuplexCandidateGroup()
364 Src2Reg = MCI.getOperand(2).getReg(); in getDuplexCandidateGroup()
372 // memw(Rs+#u4:2) = #U1 in getDuplexCandidateGroup()
375 inRange<4, 2>(MCI, 1) && inRange<1>(MCI, 2)) { in getDuplexCandidateGroup()
383 inRange<4>(MCI, 1) && inRange<1>(MCI, 2)) { in getDuplexCandidateGroup()
388 if (inRange<5, 3>(MCI, 2)) in getDuplexCandidateGroup()
399 // Rd = add(r29,#u6:2) in getDuplexCandidateGroup()
413 // Rd = add(r29,#u6:2) in getDuplexCandidateGroup()
415 inRange<6, 2>(MCI, 2)) { in getDuplexCandidateGroup()
425 (minConstant(MCI, 2) == 1 || minConstant(MCI, 2) == -1)) { in getDuplexCandidateGroup()
434 Src2Reg = MCI.getOperand(2).getReg(); in getDuplexCandidateGroup()
445 (minConstant(MCI, 2) == 1 || minConstant(MCI, 2) == 255)) { in getDuplexCandidateGroup()
475 Hexagon::P0 == PredReg && minConstant(MCI, 2) == 0) { in getDuplexCandidateGroup()
485 inRange<2>(MCI, 2)) { in getDuplexCandidateGroup()
494 inRange<2>(MCI, 1) && inRange<2>(MCI, 2)) { in getDuplexCandidateGroup()
504 minConstant(MCI, 2) == 0) { in getDuplexCandidateGroup()
511 SrcReg = MCI.getOperand(2).getReg(); in getDuplexCandidateGroup()
544 if (!potentialDuplex.getOperand(2).getExpr()->evaluateAsAbsolute(Value)) in subInstWouldBeExtended()
592 // If a duplex contains 2 insns in the same group, the insns must be in isOrderedDuplexPair()
614 // Prevent 2 instructions with extenders from duplexing in isOrderedDuplexPair()
707 Absolute = Inst.getOperand(2).getExpr()->evaluateAsAbsolute(Value); in deriveSubInst()
714 } // 1,2 SUBInst $Rd = add($Rs, #1) in deriveSubInst()
719 addOps(Result, Inst, 2); in deriveSubInst()
721 } // 1,2 SUBInst $Rd = add($Rs,#-1) in deriveSubInst()
725 addOps(Result, Inst, 2); in deriveSubInst()
732 addOps(Result, Inst, 2); in deriveSubInst()
733 break; // 1,2,3 SUBInst $Rx = add($Rx, #$s7) in deriveSubInst()
738 addOps(Result, Inst, 2); in deriveSubInst()
739 break; // 1,2,3 SUBInst $Rx = add($_src_, $Rs) in deriveSubInst()
742 addOps(Result, Inst, 2); in deriveSubInst()
745 if (minConstant(Inst, 2) == 255) { in deriveSubInst()
749 break; // 1,2 $Rd = and($Rs, #255) in deriveSubInst()
754 break; // 1,2 SUBInst $Rd = and($Rs, #1) in deriveSubInst()
759 addOps(Result, Inst, 2); in deriveSubInst()
760 break; // 2,3 SUBInst p0 = cmp.eq($Rs, #$u2) in deriveSubInst()
768 addOps(Result, Inst, 2); in deriveSubInst()
774 addOps(Result, Inst, 2); in deriveSubInst()
780 addOps(Result, Inst, 2); in deriveSubInst()
783 if (Value == 2) { in deriveSubInst()
786 addOps(Result, Inst, 2); in deriveSubInst()
787 break; // 1,3 SUBInst $Rdd = combine(#2, #$u2) in deriveSubInst()
793 addOps(Result, Inst, 2); in deriveSubInst()
799 break; // 1,2 SUBInst $Rdd = combine($Rs, #0) in deriveSubInst()
847 addOps(Result, Inst, 2); in deriveSubInst()
848 break; // 1,2,3 SUBInst $Rd = memb($Rs + #$u3_0) in deriveSubInst()
852 addOps(Result, Inst, 2); in deriveSubInst()
858 addOps(Result, Inst, 2); in deriveSubInst()
859 break; // 1,2,3 SUBInst $Rd = memh($Rs + #$u3_1) in deriveSubInst()
864 addOps(Result, Inst, 2); in deriveSubInst()
865 break; // 1,2,3 SUBInst $Rd = memub($Rs + #$u4_0) in deriveSubInst()
870 addOps(Result, Inst, 2); in deriveSubInst()
871 break; // 1,2,3 SUBInst $Rd = memuh($Rs + #$u3_1) in deriveSubInst()
876 addOps(Result, Inst, 2); in deriveSubInst()
877 break; // 2 1,3 SUBInst $Rd = memw(r29 + #$u5_2) in deriveSubInst()
882 addOps(Result, Inst, 2); in deriveSubInst()
883 break; // 1,2,3 SUBInst $Rd = memw($Rs + #$u4_2) in deriveSubInst()
886 Absolute = Inst.getOperand(2).getExpr()->evaluateAsAbsolute(Value); in deriveSubInst()
892 break; // 1,2 SUBInst memb($Rs + #$u4_0)=#0 in deriveSubInst()
897 break; // 2 1,2 SUBInst memb($Rs + #$u4_0)=#1 in deriveSubInst()
904 addOps(Result, Inst, 2); in deriveSubInst()
905 break; // 1,2,3 SUBInst memb($Rs + #$u4_0) = $Rt in deriveSubInst()
909 addOps(Result, Inst, 2); in deriveSubInst()
910 break; // 2,3 SUBInst memd(r29 + #$s6_3) = $Rtt in deriveSubInst()
915 addOps(Result, Inst, 2); in deriveSubInst()
916 break; // 1,2,3 SUBInst memb($Rs + #$u4_0) = $Rt in deriveSubInst()
918 Absolute = Inst.getOperand(2).getExpr()->evaluateAsAbsolute(Value); in deriveSubInst()
924 break; // 3 1,2 SUBInst memw($Rs + #$u4_2)=#0 in deriveSubInst()
929 break; // 3 1,2 SUBInst memw($Rs + #$u4_2)=#1 in deriveSubInst()
933 addOps(Result, Inst, 2); in deriveSubInst()
934 break; // 1 2,3 SUBInst memw(r29 + #$u5_2) = $Rt in deriveSubInst()
941 addOps(Result, Inst, 2); // 1,2,3 SUBInst memw(sp + #$u5_2) = $Rt in deriveSubInst()
946 addOps(Result, Inst, 2); // 1,2,3 SUBInst memw($Rs + #$u4_2) = $Rt in deriveSubInst()
953 break; // 1,2 SUBInst $Rd = sxtb($Rs) in deriveSubInst()
958 break; // 1,2 SUBInst $Rd = sxth($Rs) in deriveSubInst()
963 break; // 1,2 SUBInst $Rd = $Rs in deriveSubInst()
968 break; // 2 SUBInst if (!p0.new) $Rd = #0 in deriveSubInst()
973 break; // 2 SUBInst if (p0.new) $Rd = #0 in deriveSubInst()
978 break; // 2 SUBInst if (!p0) $Rd = #0 in deriveSubInst()
983 break; // 2 SUBInst if (p0) $Rd = #0 in deriveSubInst()
990 break; // 2 1 SUBInst $Rd = #-1 in deriveSubInst()
995 break; // 1,2 SUBInst $Rd = #$u6 in deriveSubInst()
1001 break; // 1,2 $Rd = and($Rs, #255) in deriveSubInst()
1007 break; // 1,2 SUBInst $Rd = zxth($Rs) in deriveSubInst()