Commit 61e4d23
authored
[RISCV] Fold (X & -(1 << C1) & 0xffffffff) == C2 << C1 to sraiw X, C1 == C2. (#157617)
We had an existing fold for (X & -(1 << C1) & 0xffffffff) == 0
which we can generalize to support comparing to constants other
than 0.
Previously we used srliw, but this generalizes better using sraiw.
I'm restricting to the case where C2 is simm12 or 2048 to allow
sraiw+addi/xori+seqz/snez to be used. Other constants require a
more careful analysis of the constants involved.1 parent 397e5a4 commit 61e4d23
File tree
3 files changed
+84
-19
lines changed- llvm
- lib/Target/RISCV
- test/CodeGen/RISCV
3 files changed
+84
-19
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16761 | 16761 | | |
16762 | 16762 | | |
16763 | 16763 | | |
16764 | | - | |
| 16764 | + | |
16765 | 16765 | | |
16766 | 16766 | | |
16767 | | - | |
16768 | | - | |
| 16767 | + | |
16769 | 16768 | | |
16770 | | - | |
| 16769 | + | |
| 16770 | + | |
16771 | 16771 | | |
16772 | 16772 | | |
16773 | 16773 | | |
16774 | 16774 | | |
16775 | 16775 | | |
16776 | 16776 | | |
16777 | | - | |
16778 | | - | |
16779 | | - | |
16780 | | - | |
16781 | | - | |
16782 | | - | |
16783 | | - | |
16784 | | - | |
16785 | | - | |
16786 | | - | |
| 16777 | + | |
| 16778 | + | |
| 16779 | + | |
| 16780 | + | |
| 16781 | + | |
| 16782 | + | |
| 16783 | + | |
| 16784 | + | |
| 16785 | + | |
| 16786 | + | |
| 16787 | + | |
| 16788 | + | |
| 16789 | + | |
| 16790 | + | |
| 16791 | + | |
| 16792 | + | |
| 16793 | + | |
| 16794 | + | |
16787 | 16795 | | |
16788 | 16796 | | |
16789 | 16797 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
77 | | - | |
| 77 | + | |
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
94 | | - | |
| 94 | + | |
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
190 | | - | |
| 190 | + | |
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
194 | 194 | | |
195 | 195 | | |
196 | | - | |
| 196 | + | |
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
| |||
3517 | 3517 | | |
3518 | 3518 | | |
3519 | 3519 | | |
3520 | | - | |
| 3520 | + | |
3521 | 3521 | | |
3522 | 3522 | | |
3523 | 3523 | | |
| |||
0 commit comments