Lines Matching refs:Rm
281 let MIOperandInfo = (ops GPR:$Rn, rGPR:$Rm);
287 let MIOperandInfo = (ops GPR:$Rn, rGPR:$Rm);
377 bits<4> Rm;
380 let Inst{3-0} = Rm;
387 bits<4> Rm;
390 let Inst{3-0} = Rm;
397 bits<4> Rm;
400 let Inst{3-0} = Rm;
436 bits<4> Rm;
440 let Inst{3-0} = Rm;
449 bits<4> Rm;
453 let Inst{3-0} = Rm;
463 bits<4> Rm;
467 let Inst{3-0} = Rm;
475 bits<4> Rm;
479 let Inst{3-0} = Rm;
487 bits<4> Rm;
491 let Inst{3-0} = Rm;
529 bits<4> Rm;
535 let Inst{3-0} = Rm;
545 bits<4> Rm;
553 let Inst{3-0} = Rm;
562 bits<4> Rm;
570 let Inst{3-0} = Rm;
593 def rr : T2sThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), iir,
594 opc, !strconcat(wide, "\t$Rd, $Rn, $Rm"),
595 [(set rGPR:$Rd, (opnode rGPR:$Rn, rGPR:$Rm))]>,
621 def : t2InstAlias<!strconcat(opc, "${s}${p}", wide, " $Rdn, $Rm"),
623 rGPR:$Rm, pred:$p,
642 def : t2InstAlias<!strconcat(opc, "${s}${p}", " $Rd, $Rn, $Rm"),
643 (!cast<Instruction>(NAME#"rr") rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, pred:$p,
653 def : t2InstAlias<!strconcat(opc, "${s}${p}", " $Rdn, $Rm"),
654 (!cast<Instruction>(NAME#"rr") rGPR:$Rdn, rGPR:$Rdn, rGPR:$Rm, pred:$p,
678 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iALUr,
679 opc, "\t$Rd, $Rn, $Rm",
718 def rr : t2PseudoInst<(outs rGPR:$Rd), (ins GPRnopc:$Rn, rGPR:$Rm, pred:$p),
721 rGPR:$Rm))]>,
797 def rr : T2sThreeReg<(outs GPRnopc:$Rd), (ins GPRnopc:$Rn, rGPR:$Rm),
798 IIC_iALUr, opc, ".w\t$Rd, $Rn, $Rm",
799 [(set GPRnopc:$Rd, (opnode GPRnopc:$Rn, rGPR:$Rm))]>,
840 def rr : T2sThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iALUr,
841 opc, ".w\t$Rd, $Rn, $Rm",
842 [(set rGPR:$Rd, CPSR, (opnode rGPR:$Rn, rGPR:$Rm, CPSR))]>,
870 (outs rGPR:$Rd), (ins rGPR:$Rm, ty:$imm), IIC_iMOVsi,
871 opc, ".w\t$Rd, $Rm, $imm",
872 [(set rGPR:$Rd, (opnode rGPR:$Rm, (i32 ty:$imm)))]>,
881 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iMOVsr,
882 opc, ".w\t$Rd, $Rn, $Rm",
883 [(set rGPR:$Rd, (opnode rGPR:$Rn, rGPR:$Rm))]>,
896 def : t2InstAlias<!strconcat(opc, "${s}${p}", ".w $Rdn, $Rm"),
897 (!cast<Instruction>(NAME#"rr") rGPR:$Rdn, rGPR:$Rdn, rGPR:$Rm, pred:$p,
904 def : t2InstAlias<!strconcat(opc, "${s}${p}", " $Rd, $Rn, $Rm"),
905 (!cast<Instruction>(NAME#"rr") rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, pred:$p,
912 def : t2InstAlias<!strconcat(opc, "${s}${p}", " $Rdn, $Rm"),
913 (!cast<Instruction>(NAME#"rr") rGPR:$Rdn, rGPR:$Rdn, rGPR:$Rm, pred:$p,
938 (outs), (ins GPRnopc:$Rn, rGPR:$Rm), iir,
939 opc, ".w\t$Rn, $Rm",
940 [(opnode GPRnopc:$Rn, rGPR:$Rm)]>, Sched<[WriteCMP]> {
1031 let Inst{3-0} = addr{5-2}; // Rm
1116 let Inst{3-0} = addr{5-2}; // Rm
1124 : T2TwoReg<(outs rGPR:$Rd), (ins rGPR:$Rm, rot_imm:$rot), IIC_iEXTr,
1125 opc, ".w\t$Rd, $Rm$rot",
1126 [(set rGPR:$Rd, (opnode (rotr rGPR:$Rm, rot_imm:$rot)))]>,
1141 : T2TwoReg<(outs rGPR:$Rd), (ins rGPR:$Rm, rot_imm:$rot),
1142 IIC_iEXTr, opc, "\t$Rd, $Rm$rot",
1143 [(set rGPR:$Rd, (opnode (rotr rGPR:$Rm, rot_imm:$rot)))]>,
1158 : T2TwoReg<(outs rGPR:$Rd), (ins rGPR:$Rm, rot_imm:$rot), IIC_iEXTr,
1159 opc, "\t$Rd, $Rm$rot", []>,
1175 (ins rGPR:$Rn, rGPR:$Rm, rot_imm:$rot),
1176 IIC_iEXTAsr, opc, "\t$Rd, $Rn, $Rm$rot",
1177 [(set rGPR:$Rd, (opnode rGPR:$Rn, (rotr rGPR:$Rm,rot_imm:$rot)))]>,
1189 : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm,rot_imm:$rot),
1190 IIC_iEXTAsr, opc, "\t$Rd, $Rn, $Rm$rot", []>,
1669 let Inst{3-0} = addr{5-2}; // Rm
1863 def t2MOVr : T2sTwoReg<(outs GPRnopc:$Rd), (ins GPR:$Rm), IIC_iMOVr,
1864 "mov", ".w\t$Rd, $Rm", []>, Sched<[WriteALU]> {
1872 def : t2InstAlias<"mov${p}.w $Rd, $Rm", (t2MOVr GPRnopc:$Rd, GPR:$Rm,
1874 def : t2InstAlias<"movs${p}.w $Rd, $Rm", (t2MOVr GPRnopc:$Rd, GPR:$Rm,
1876 def : t2InstAlias<"movs${p} $Rd, $Rm", (t2MOVr GPRnopc:$Rd, GPR:$Rm,
1986 def : Pat<(add rGPR:$Rn, (sext_inreg (srl rGPR:$Rm, rot_imm:$rot), i8)),
1987 (t2SXTAB rGPR:$Rn, rGPR:$Rm, rot_imm:$rot)>,
1989 def : Pat<(add rGPR:$Rn, (sext_inreg (srl rGPR:$Rm, imm8_or_16:$rot), i16)),
1990 (t2SXTAH rGPR:$Rn, rGPR:$Rm, rot_imm:$rot)>,
2020 def : Pat<(add rGPR:$Rn, (and (srl rGPR:$Rm, rot_imm:$rot), 0xFF)),
2021 (t2UXTAB rGPR:$Rn, rGPR:$Rm, rot_imm:$rot)>,
2023 def : Pat<(add rGPR:$Rn, (and (srl rGPR:$Rm, imm8_or_16:$rot), 0xFFFF)),
2024 (t2UXTAH rGPR:$Rn, rGPR:$Rm, rot_imm:$rot)>,
2098 def t2SEL : T2ThreeReg<(outs GPR:$Rd), (ins GPR:$Rn, GPR:$Rm),
2099 NoItinerary, "sel", "\t$Rd, $Rn, $Rm", []>,
2114 dag iops = (ins rGPR:$Rn, rGPR:$Rm),
2115 string asm = "\t$Rd, $Rn, $Rm">
2126 bits<4> Rm;
2130 let Inst{3-0} = Rm;
2136 [(set rGPR:$Rd, (int_arm_qadd rGPR:$Rn, rGPR:$Rm))],
2137 (ins rGPR:$Rm, rGPR:$Rn), "\t$Rd, $Rm, $Rn">;
2142 (ins rGPR:$Rm, rGPR:$Rn), "\t$Rd, $Rm, $Rn">;
2144 (ins rGPR:$Rm, rGPR:$Rn), "\t$Rd, $Rm, $Rn">;
2147 [(set rGPR:$Rd, (int_arm_qsub rGPR:$Rn, rGPR:$Rm))],
2148 (ins rGPR:$Rm, rGPR:$Rn), "\t$Rd, $Rm, $Rn">;
2213 (ins rGPR:$Rn, rGPR:$Rm),
2214 NoItinerary, "usad8", "\t$Rd, $Rn, $Rm", []>,
2219 (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), NoItinerary,
2220 "usada8", "\t$Rd, $Rn, $Rm, $Ra", []>,
2307 def t2RRX : T2sTwoReg<(outs rGPR:$Rd), (ins rGPR:$Rm), IIC_iMOVsi,
2308 "rrx", "\t$Rd, $Rm",
2309 [(set rGPR:$Rd, (ARMrrx rGPR:$Rm))]>, Sched<[WriteALU]> {
2321 (outs rGPR:$Rd), (ins rGPR:$Rm), IIC_iMOVsi,
2322 "lsrs", ".w\t$Rd, $Rm, #1",
2323 [(set rGPR:$Rd, (ARMsrl_flag rGPR:$Rm))]>,
2336 (outs rGPR:$Rd), (ins rGPR:$Rm), IIC_iMOVsi,
2337 "asrs", ".w\t$Rd, $Rm, #1",
2338 [(set rGPR:$Rd, (ARMsra_flag rGPR:$Rm))]>,
2481 def r : T2sTwoReg<(outs rGPR:$Rd), (ins rGPR:$Rm), iir,
2482 opc, ".w\t$Rd, $Rm",
2483 [(set rGPR:$Rd, (opnode rGPR:$Rm))]>, Sched<[WriteALU]> {
2537 def t2MUL: T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL32,
2538 "mul", "\t$Rd, $Rn, $Rm",
2539 [(set rGPR:$Rd, (mul rGPR:$Rn, rGPR:$Rm))]> {
2548 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC32,
2549 "mla", "\t$Rd, $Rn, $Rm, $Ra",
2550 [(set rGPR:$Rd, (add (mul rGPR:$Rn, rGPR:$Rm), rGPR:$Ra))]>,
2559 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC32,
2560 "mls", "\t$Rd, $Rn, $Rm, $Ra",
2561 [(set rGPR:$Rd, (sub rGPR:$Ra, (mul rGPR:$Rn, rGPR:$Rm)))]>,
2574 (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL64,
2575 "smull", "\t$RdLo, $RdHi, $Rn, $Rm", []>;
2579 (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL64,
2580 "umull", "\t$RdLo, $RdHi, $Rn, $Rm", []>;
2586 (ins rGPR:$Rn, rGPR:$Rm, rGPR:$RLo, rGPR:$RHi), IIC_iMAC64,
2587 "smlal", "\t$RdLo, $RdHi, $Rn, $Rm", []>,
2592 (ins rGPR:$Rn, rGPR:$Rm, rGPR:$RLo, rGPR:$RHi), IIC_iMAC64,
2593 "umlal", "\t$RdLo, $RdHi, $Rn, $Rm", []>,
2598 (ins rGPR:$Rn, rGPR:$Rm, rGPR:$RLo, rGPR:$RHi), IIC_iMAC64,
2599 "umaal", "\t$RdLo, $RdHi, $Rn, $Rm", []>,
2607 def t2SMMUL : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL32,
2608 "smmul", "\t$Rd, $Rn, $Rm",
2609 [(set rGPR:$Rd, (mulhs rGPR:$Rn, rGPR:$Rm))]>,
2618 def t2SMMULR : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL32,
2619 "smmulr", "\t$Rd, $Rn, $Rm", []>,
2629 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC32,
2630 "smmla", "\t$Rd, $Rn, $Rm, $Ra",
2631 [(set rGPR:$Rd, (add (mulhs rGPR:$Rm, rGPR:$Rn), rGPR:$Ra))]>,
2640 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC32,
2641 "smmlar", "\t$Rd, $Rn, $Rm, $Ra", []>,
2650 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC32,
2651 "smmls", "\t$Rd, $Rn, $Rm, $Ra",
2652 [(set rGPR:$Rd, (sub rGPR:$Ra, (mulhs rGPR:$Rn, rGPR:$Rm)))]>,
2661 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC32,
2662 "smmlsr", "\t$Rd, $Rn, $Rm, $Ra", []>,
2671 def BB : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL16,
2672 !strconcat(opc, "bb"), "\t$Rd, $Rn, $Rm",
2674 (sext_inreg rGPR:$Rm, i16)))]>,
2684 def BT : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL16,
2685 !strconcat(opc, "bt"), "\t$Rd, $Rn, $Rm",
2687 (sra rGPR:$Rm, (i32 16))))]>,
2697 def TB : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL16,
2698 !strconcat(opc, "tb"), "\t$Rd, $Rn, $Rm",
2700 (sext_inreg rGPR:$Rm, i16)))]>,
2710 def TT : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL16,
2711 !strconcat(opc, "tt"), "\t$Rd, $Rn, $Rm",
2713 (sra rGPR:$Rm, (i32 16))))]>,
2723 def WB : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL16,
2724 !strconcat(opc, "wb"), "\t$Rd, $Rn, $Rm",
2735 def WT : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iMUL16,
2736 !strconcat(opc, "wt"), "\t$Rd, $Rn, $Rm",
2751 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC16,
2752 !strconcat(opc, "bb"), "\t$Rd, $Rn, $Rm, $Ra",
2755 (sext_inreg rGPR:$Rm, i16))))]>,
2765 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC16,
2766 !strconcat(opc, "bt"), "\t$Rd, $Rn, $Rm, $Ra",
2768 (sra rGPR:$Rm, (i32 16)))))]>,
2778 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC16,
2779 !strconcat(opc, "tb"), "\t$Rd, $Rn, $Rm, $Ra",
2781 (sext_inreg rGPR:$Rm, i16))))]>,
2791 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC16,
2792 !strconcat(opc, "tt"), "\t$Rd, $Rn, $Rm, $Ra",
2794 (sra rGPR:$Rm, (i32 16)))))]>,
2804 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC16,
2805 !strconcat(opc, "wb"), "\t$Rd, $Rn, $Rm, $Ra",
2816 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC16,
2817 !strconcat(opc, "wt"), "\t$Rd, $Rn, $Rm, $Ra",
2833 (ins rGPR:$Rn,rGPR:$Rm), IIC_iMAC64, "smlalbb", "\t$Ra, $Rd, $Rn, $Rm",
2837 (ins rGPR:$Rn,rGPR:$Rm), IIC_iMAC64, "smlalbt", "\t$Ra, $Rd, $Rn, $Rm",
2841 (ins rGPR:$Rn,rGPR:$Rm), IIC_iMAC64, "smlaltb", "\t$Ra, $Rd, $Rn, $Rm",
2845 (ins rGPR:$Rn,rGPR:$Rm), IIC_iMAC64, "smlaltt", "\t$Ra, $Rd, $Rn, $Rm",
2851 0, 0b010, 0b0000, (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm),
2852 IIC_iMAC32, "smuad", "\t$Rd, $Rn, $Rm", []>,
2857 0, 0b010, 0b0001, (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm),
2858 IIC_iMAC32, "smuadx", "\t$Rd, $Rn, $Rm", []>,
2863 0, 0b100, 0b0000, (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm),
2864 IIC_iMAC32, "smusd", "\t$Rd, $Rn, $Rm", []>,
2869 0, 0b100, 0b0001, (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm),
2870 IIC_iMAC32, "smusdx", "\t$Rd, $Rn, $Rm", []>,
2876 (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC32, "smlad",
2877 "\t$Rd, $Rn, $Rm, $Ra", []>,
2881 (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC32, "smladx",
2882 "\t$Rd, $Rn, $Rm, $Ra", []>,
2885 (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC32, "smlsd",
2886 "\t$Rd, $Rn, $Rm, $Ra", []>,
2889 (ins rGPR:$Rn, rGPR:$Rm, rGPR:$Ra), IIC_iMAC32, "smlsdx",
2890 "\t$Rd, $Rn, $Rm, $Ra", []>,
2893 (ins rGPR:$Rn, rGPR:$Rm), IIC_iMAC64, "smlald",
2894 "\t$Ra, $Rd, $Rn, $Rm", []>,
2897 (ins rGPR:$Rn,rGPR:$Rm), IIC_iMAC64, "smlaldx",
2898 "\t$Ra, $Rd, $Rn, $Rm", []>,
2901 (ins rGPR:$Rn,rGPR:$Rm), IIC_iMAC64, "smlsld",
2902 "\t$Ra, $Rd, $Rn, $Rm", []>,
2905 (ins rGPR:$Rm,rGPR:$Rn), IIC_iMAC64, "smlsldx",
2906 "\t$Ra, $Rd, $Rn, $Rm", []>,
2913 def t2SDIV : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iDIV,
2914 "sdiv", "\t$Rd, $Rn, $Rm",
2915 [(set rGPR:$Rd, (sdiv rGPR:$Rn, rGPR:$Rm))]>,
2924 def t2UDIV : T2ThreeReg<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), IIC_iDIV,
2925 "udiv", "\t$Rd, $Rn, $Rm",
2926 [(set rGPR:$Rd, (udiv rGPR:$Rn, rGPR:$Rm))]>,
2948 let Rn{3-0} = Rm;
2951 def t2CLZ : T2I_misc<0b11, 0b00, (outs rGPR:$Rd), (ins rGPR:$Rm), IIC_iUNAr,
2952 "clz", "\t$Rd, $Rm", [(set rGPR:$Rd, (ctlz rGPR:$Rm))]>,
2955 def t2RBIT : T2I_misc<0b01, 0b10, (outs rGPR:$Rd), (ins rGPR:$Rm), IIC_iUNAr,
2956 "rbit", "\t$Rd, $Rm",
2957 [(set rGPR:$Rd, (bitreverse rGPR:$Rm))]>,
2960 def t2REV : T2I_misc<0b01, 0b00, (outs rGPR:$Rd), (ins rGPR:$Rm), IIC_iUNAr,
2961 "rev", ".w\t$Rd, $Rm", [(set rGPR:$Rd, (bswap rGPR:$Rm))]>,
2964 def t2REV16 : T2I_misc<0b01, 0b01, (outs rGPR:$Rd), (ins rGPR:$Rm), IIC_iUNAr,
2965 "rev16", ".w\t$Rd, $Rm",
2966 [(set rGPR:$Rd, (rotr (bswap rGPR:$Rm), (i32 16)))]>,
2969 def t2REVSH : T2I_misc<0b01, 0b11, (outs rGPR:$Rd), (ins rGPR:$Rm), IIC_iUNAr,
2970 "revsh", ".w\t$Rd, $Rm",
2971 [(set rGPR:$Rd, (sra (bswap rGPR:$Rm), (i32 16)))]>,
2974 def : T2Pat<(or (sra (shl rGPR:$Rm, (i32 24)), (i32 16)),
2975 (and (srl rGPR:$Rm, (i32 8)), 0xFF)),
2976 (t2REVSH rGPR:$Rm)>;
2979 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, pkh_lsl_amt:$sh),
2980 IIC_iBITsi, "pkhbt", "\t$Rd, $Rn, $Rm$sh",
2982 (and (shl rGPR:$Rm, pkh_lsl_amt:$sh),
3008 (outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm, pkh_asr_amt:$sh),
3009 IIC_iBITsi, "pkhtb", "\t$Rd, $Rn, $Rm$sh",
3011 (and (sra rGPR:$Rm, pkh_asr_amt:$sh),
3050 : T2ThreeRegNoP<(outs rGPR:$Rd), (ins rGPR:$Rn, rGPR:$Rm), NoItinerary,
3051 !strconcat("crc32", suffix, "\t$Rd, $Rn, $Rm"),
3052 [(set rGPR:$Rd, (builtin rGPR:$Rn, rGPR:$Rm))]>,
3098 (outs), (ins GPRnopc:$Rn, rGPR:$Rm), IIC_iCMPr,
3099 "cmn", ".w\t$Rn, $Rm",
3101 GPRnopc:$Rn, rGPR:$Rm)]>, Sched<[WriteCMP, ReadALU, ReadALU]> {
3152 (ins rGPR:$false, rGPR:$Rm, cmovpred:$p),
3154 [(set rGPR:$Rd, (ARMcmov rGPR:$false, rGPR:$Rm,
3189 (ins rGPR:$false, rGPR:$Rm, i32imm:$imm, cmovpred:$p),
3192 (opnode rGPR:$Rm, (i32 ty:$imm)),
3564 bits<4> Rm;
3569 let Inst{3-0} = Rm;
3577 bits<4> Rm;
3582 let Inst{3-0} = Rm;
3645 // Rm = Inst{19-16}
4371 def : T2Pat<(and rGPR:$Rm, 0x000000FF), (t2UXTB rGPR:$Rm, 0)>,
4373 def : T2Pat<(and rGPR:$Rm, 0x0000FFFF), (t2UXTH rGPR:$Rm, 0)>,
4375 def : T2Pat<(and rGPR:$Rm, 0x00FF00FF), (t2UXTB16 rGPR:$Rm, 0)>,
4377 def : T2Pat<(add rGPR:$Rn, (and rGPR:$Rm, 0x00FF)),
4378 (t2UXTAB rGPR:$Rn, rGPR:$Rm, 0)>,
4380 def : T2Pat<(add rGPR:$Rn, (and rGPR:$Rm, 0xFFFF)),
4381 (t2UXTAH rGPR:$Rn, rGPR:$Rm, 0)>,
4389 def : T2Pat<(add rGPR:$Rn, (sext_inreg rGPR:$Rm, i8)),
4390 (t2SXTAB rGPR:$Rn, rGPR:$Rm, 0)>,
4392 def : T2Pat<(add rGPR:$Rn, (sext_inreg rGPR:$Rm, i16)),
4393 (t2SXTAH rGPR:$Rn, rGPR:$Rm, 0)>,
4449 def : t2InstAlias<"adc${s}${p} $Rd, $Rn, $Rm",
4450 (t2ADCrr rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, pred:$p, cc_out:$s)>;
4456 def : t2InstAlias<"sbc${s}${p} $Rd, $Rn, $Rm",
4457 (t2SBCrr rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, pred:$p, cc_out:$s)>;
4468 def : t2InstAlias<"add${s}${p} $Rd, $Rn, $Rm",
4469 (t2ADDrr GPRnopc:$Rd, GPRnopc:$Rn, rGPR:$Rm, pred:$p, cc_out:$s)>;
4478 def : t2InstAlias<"add${s}${p} $Rdn, $Rm",
4479 (t2ADDrr GPRnopc:$Rdn, GPRnopc:$Rdn, rGPR:$Rm, pred:$p, cc_out:$s)>;
4513 def : t2InstAlias<"sub${s}${p} $Rd, $Rn, $Rm",
4514 (t2SUBrr GPRnopc:$Rd, GPRnopc:$Rn, rGPR:$Rm, pred:$p, cc_out:$s)>;
4523 def : t2InstAlias<"sub${s}${p}.w $Rdn, $Rm",
4524 (t2SUBrr GPRnopc:$Rdn, GPRnopc:$Rdn, rGPR:$Rm, pred:$p, cc_out:$s)>;
4525 def : t2InstAlias<"sub${s}${p} $Rdn, $Rm",
4526 (t2SUBrr GPRnopc:$Rdn, GPRnopc:$Rdn, rGPR:$Rm, pred:$p, cc_out:$s)>;
4532 def : t2InstAlias<"cmn${p} $Rn, $Rm",
4533 (t2CMNzrr GPRnopc:$Rn, rGPR:$Rm, pred:$p)>;
4534 def : t2InstAlias<"teq${p} $Rn, $Rm",
4535 (t2TEQrr GPRnopc:$Rn, rGPR:$Rm, pred:$p)>;
4536 def : t2InstAlias<"tst${p} $Rn, $Rm",
4537 (t2TSTrr GPRnopc:$Rn, rGPR:$Rm, pred:$p)>;
4582 def : t2InstAlias<"mvn${s}${p} $Rd, $Rm",
4583 (t2MVNr rGPR:$Rd, rGPR:$Rm, pred:$p, cc_out:$s)>;
4589 def : InstAlias<"pkhbt${p} $Rd, $Rn, $Rm",
4590 (t2PKHBT rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, 0, pred:$p), 0>,
4592 def : InstAlias<"pkhtb${p} $Rd, $Rn, $Rm",
4593 (t2PKHBT rGPR:$Rd, rGPR:$Rm, rGPR:$Rn, 0, pred:$p), 0>,
4627 def : t2InstAlias<"rev${p} $Rd, $Rm", (t2REV rGPR:$Rd, rGPR:$Rm, pred:$p)>;
4628 def : t2InstAlias<"rev16${p} $Rd, $Rm", (t2REV16 rGPR:$Rd, rGPR:$Rm, pred:$p)>;
4629 def : t2InstAlias<"revsh${p} $Rd, $Rm", (t2REVSH rGPR:$Rd, rGPR:$Rm, pred:$p)>;
4638 def : t2InstAlias<"rsb${s}${p} $Rdn, $Rm",
4639 (t2RSBrr rGPR:$Rdn, rGPR:$Rdn, rGPR:$Rm, pred:$p, cc_out:$s)>;
4671 def : InstAlias<"sxtab${p} $Rd, $Rn, $Rm",
4672 (t2SXTAB rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, 0, pred:$p), 0>,
4674 def : InstAlias<"sxtah${p} $Rd, $Rn, $Rm",
4675 (t2SXTAH rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, 0, pred:$p), 0>,
4677 def : InstAlias<"sxtab16${p} $Rd, $Rn, $Rm",
4678 (t2SXTAB16 rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, 0, pred:$p), 0>,
4680 def : InstAlias<"sxtb16${p} $Rd, $Rm",
4681 (t2SXTB16 rGPR:$Rd, rGPR:$Rm, 0, pred:$p), 0>,
4684 def : t2InstAlias<"sxtb${p} $Rd, $Rm",
4685 (t2SXTB rGPR:$Rd, rGPR:$Rm, 0, pred:$p)>;
4686 def : t2InstAlias<"sxth${p} $Rd, $Rm",
4687 (t2SXTH rGPR:$Rd, rGPR:$Rm, 0, pred:$p)>;
4688 def : t2InstAlias<"sxtb${p}.w $Rd, $Rm",
4689 (t2SXTB rGPR:$Rd, rGPR:$Rm, 0, pred:$p)>;
4690 def : t2InstAlias<"sxth${p}.w $Rd, $Rm",
4691 (t2SXTH rGPR:$Rd, rGPR:$Rm, 0, pred:$p)>;
4693 def : InstAlias<"uxtab${p} $Rd, $Rn, $Rm",
4694 (t2UXTAB rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, 0, pred:$p), 0>,
4696 def : InstAlias<"uxtah${p} $Rd, $Rn, $Rm",
4697 (t2UXTAH rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, 0, pred:$p), 0>,
4699 def : InstAlias<"uxtab16${p} $Rd, $Rn, $Rm",
4700 (t2UXTAB16 rGPR:$Rd, rGPR:$Rn, rGPR:$Rm, 0, pred:$p), 0>,
4702 def : InstAlias<"uxtb16${p} $Rd, $Rm",
4703 (t2UXTB16 rGPR:$Rd, rGPR:$Rm, 0, pred:$p), 0>,
4706 def : t2InstAlias<"uxtb${p} $Rd, $Rm",
4707 (t2UXTB rGPR:$Rd, rGPR:$Rm, 0, pred:$p)>;
4708 def : t2InstAlias<"uxth${p} $Rd, $Rm",
4709 (t2UXTH rGPR:$Rd, rGPR:$Rm, 0, pred:$p)>;
4710 def : t2InstAlias<"uxtb${p}.w $Rd, $Rm",
4711 (t2UXTB rGPR:$Rd, rGPR:$Rm, 0, pred:$p)>;
4712 def : t2InstAlias<"uxth${p}.w $Rd, $Rm",
4713 (t2UXTH rGPR:$Rd, rGPR:$Rm, 0, pred:$p)>;
4716 def : t2InstAlias<"uxtb${p} $Rd, $Rm$rot",
4717 (t2UXTB rGPR:$Rd, rGPR:$Rm, rot_imm:$rot, pred:$p)>;
4718 def : InstAlias<"uxtb16${p} $Rd, $Rm$rot",
4719 (t2UXTB16 rGPR:$Rd, rGPR:$Rm, rot_imm:$rot, pred:$p), 0>,
4721 def : t2InstAlias<"uxth${p} $Rd, $Rm$rot",
4722 (t2UXTH rGPR:$Rd, rGPR:$Rm, rot_imm:$rot, pred:$p)>;
4724 def : t2InstAlias<"sxtb${p} $Rd, $Rm$rot",
4725 (t2SXTB rGPR:$Rd, rGPR:$Rm, rot_imm:$rot, pred:$p)>;
4726 def : InstAlias<"sxtb16${p} $Rd, $Rm$rot",
4727 (t2SXTB16 rGPR:$Rd, rGPR:$Rm, rot_imm:$rot, pred:$p), 0>,
4729 def : t2InstAlias<"sxth${p} $Rd, $Rm$rot",
4730 (t2SXTH rGPR:$Rd, rGPR:$Rm, rot_imm:$rot, pred:$p)>;
4767 def : t2InstAlias<"mul${p} $Rn, $Rm",
4768 (t2MUL rGPR:$Rn, rGPR:$Rm, rGPR:$Rn, pred:$p)>;
4771 def : t2InstAlias<"neg${s}${p} $Rd, $Rm",
4772 (t2RSBri rGPR:$Rd, rGPR:$Rm, 0, pred:$p, cc_out:$s)>;