@@ -60,40 +60,71 @@ def BigInst : RVInst<1, [AsmPred1]>;
60
60
def SmallInst1 : RVInst16<1, []>;
61
61
def : CompressPat<(BigInst Regs:$r), (SmallInst1 Regs:$r), [AsmPred1]>;
62
62
// COMPRESS: if (STI.getFeatureBits()[arch::AsmCond1] &&
63
- // COMPRESS-NEXT: ( MI.getOperand(0).isReg() ) &&
64
- // COMPRESS-NEXT: ( archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg() ))) {
63
+ // COMPRESS-NEXT: MI.getOperand(0).isReg() &&
64
+ // COMPRESS-NEXT: archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg())) {
65
65
// COMPRESS-NEXT: // SmallInst1 $r
66
66
67
67
def SmallInst2 : RVInst16<2, []>;
68
68
def : CompressPat<(BigInst Regs:$r), (SmallInst2 Regs:$r), [AsmPred2]>;
69
69
// COMPRESS: if (STI.getFeatureBits()[arch::AsmCond2a] &&
70
70
// COMPRESS-NEXT: STI.getFeatureBits()[arch::AsmCond2b] &&
71
- // COMPRESS-NEXT: ( MI.getOperand(0).isReg() ) &&
72
- // COMPRESS-NEXT: ( archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg() ))) {
71
+ // COMPRESS-NEXT: MI.getOperand(0).isReg() &&
72
+ // COMPRESS-NEXT: archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg())) {
73
73
// COMPRESS-NEXT: // SmallInst2 $r
74
74
75
75
def SmallInst3 : RVInst16<2, []>;
76
76
def : CompressPat<(BigInst Regs:$r), (SmallInst3 Regs:$r), [AsmPred3]>;
77
77
// COMPRESS: if ((STI.getFeatureBits()[arch::AsmCond3a] || STI.getFeatureBits()[arch::AsmCond3b]) &&
78
- // COMPRESS-NEXT: ( MI.getOperand(0).isReg() ) &&
79
- // COMPRESS-NEXT: ( archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg() ))) {
78
+ // COMPRESS-NEXT: MI.getOperand(0).isReg() &&
79
+ // COMPRESS-NEXT: archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg())) {
80
80
// COMPRESS-NEXT: // SmallInst3 $r
81
81
82
82
def SmallInst4 : RVInst16<2, []>;
83
83
def : CompressPat<(BigInst Regs:$r), (SmallInst4 Regs:$r), [AsmPred1, AsmPred2]>;
84
84
// COMPRESS: if (STI.getFeatureBits()[arch::AsmCond1] &&
85
85
// COMPRESS-NEXT: STI.getFeatureBits()[arch::AsmCond2a] &&
86
86
// COMPRESS-NEXT: STI.getFeatureBits()[arch::AsmCond2b] &&
87
- // COMPRESS-NEXT: ( MI.getOperand(0).isReg() ) &&
88
- // COMPRESS-NEXT: ( archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg() ))) {
87
+ // COMPRESS-NEXT: MI.getOperand(0).isReg() &&
88
+ // COMPRESS-NEXT: archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg())) {
89
89
// COMPRESS-NEXT: // SmallInst4 $r
90
90
91
91
def SmallInst5 : RVInst16<2, []>;
92
92
def : CompressPat<(BigInst Regs:$r), (SmallInst5 Regs:$r), [AsmPred1, AsmPred3]>;
93
93
// COMPRESS: if (STI.getFeatureBits()[arch::AsmCond1] &&
94
94
// COMPRESS-NEXT: (STI.getFeatureBits()[arch::AsmCond3a] || STI.getFeatureBits()[arch::AsmCond3b]) &&
95
- // COMPRESS-NEXT: ( MI.getOperand(0).isReg() ) &&
96
- // COMPRESS-NEXT: ( archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg() ))) {
95
+ // COMPRESS-NEXT: MI.getOperand(0).isReg() &&
96
+ // COMPRESS-NEXT: archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg())) {
97
97
// COMPRESS-NEXT: // SmallInst5 $r
98
98
99
99
// COMPRESS-LABEL: static bool uncompressInst
100
+
101
+ // COMPRESS-LABEL: static bool isCompressibleInst
102
+
103
+ // COMPRESS: if (STI.getFeatureBits()[arch::AsmCond1] &&
104
+ // COMPRESS-NEXT: MI.getOperand(0).isReg() && MI.getOperand(0).getReg().isPhysical() &&
105
+ // COMPRESS-NEXT: archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg())) {
106
+ // COMPRESS-NEXT: // SmallInst1 $r
107
+
108
+ // COMPRESS: if (STI.getFeatureBits()[arch::AsmCond2a] &&
109
+ // COMPRESS-NEXT: STI.getFeatureBits()[arch::AsmCond2b] &&
110
+ // COMPRESS-NEXT: MI.getOperand(0).isReg() && MI.getOperand(0).getReg().isPhysical() &&
111
+ // COMPRESS-NEXT: archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg())) {
112
+ // COMPRESS-NEXT: // SmallInst2 $r
113
+
114
+ // COMPRESS: if ((STI.getFeatureBits()[arch::AsmCond3a] || STI.getFeatureBits()[arch::AsmCond3b]) &&
115
+ // COMPRESS-NEXT: MI.getOperand(0).isReg() && MI.getOperand(0).getReg().isPhysical() &&
116
+ // COMPRESS-NEXT: archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg())) {
117
+ // COMPRESS-NEXT: // SmallInst3 $r
118
+
119
+ // COMPRESS: if (STI.getFeatureBits()[arch::AsmCond1] &&
120
+ // COMPRESS-NEXT: STI.getFeatureBits()[arch::AsmCond2a] &&
121
+ // COMPRESS-NEXT: STI.getFeatureBits()[arch::AsmCond2b] &&
122
+ // COMPRESS-NEXT: MI.getOperand(0).isReg() && MI.getOperand(0).getReg().isPhysical() &&
123
+ // COMPRESS-NEXT: archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg())) {
124
+ // COMPRESS-NEXT: // SmallInst4 $r
125
+
126
+ // COMPRESS: if (STI.getFeatureBits()[arch::AsmCond1] &&
127
+ // COMPRESS-NEXT: (STI.getFeatureBits()[arch::AsmCond3a] || STI.getFeatureBits()[arch::AsmCond3b]) &&
128
+ // COMPRESS-NEXT: MI.getOperand(0).isReg() && MI.getOperand(0).getReg().isPhysical() &&
129
+ // COMPRESS-NEXT: archMCRegisterClasses[arch::RegsRegClassID].contains(MI.getOperand(0).getReg())) {
130
+ // COMPRESS-NEXT: // SmallInst5 $r
0 commit comments