Commit 5baf58b
authored
[RISCV] Improve use of BSETI/BCLRI in constant materialization. (#91546)
We failed to use BSETI when bit 31 was set and a few bits above bit 31
were set. We also failed to use multiple BSETI when the low 32 bits were
zero.
I've removed the special cases for constants 0x80000000-0xffffffff and
wrote a more generic algorithm for BSETI.
I've rewritten the BCLRI handling to be similar to the new BSETI
algorithm. This picks up cases where bit 31 is 0 and only a few high
bits are 0.1 parent 3a3aeb8 commit 5baf58b
File tree
3 files changed
+47
-64
lines changed- llvm
- lib/Target/RISCV/MCTargetDesc
- test/CodeGen/RISCV
- rv64-legal-i32
3 files changed
+47
-64
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
310 | 310 | | |
311 | 311 | | |
312 | 312 | | |
313 | | - | |
| 313 | + | |
314 | 314 | | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
325 | | - | |
326 | | - | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | | - | |
331 | | - | |
332 | | - | |
333 | | - | |
334 | | - | |
335 | | - | |
336 | | - | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
337 | 331 | | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
338 | 342 | | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | 343 | | |
346 | 344 | | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
359 | 349 | | |
360 | | - | |
361 | | - | |
362 | | - | |
| 350 | + | |
| 351 | + | |
363 | 352 | | |
364 | 353 | | |
365 | 354 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4025 | 4025 | | |
4026 | 4026 | | |
4027 | 4027 | | |
4028 | | - | |
4029 | | - | |
4030 | | - | |
| 4028 | + | |
| 4029 | + | |
4031 | 4030 | | |
4032 | 4031 | | |
4033 | 4032 | | |
| |||
4083 | 4082 | | |
4084 | 4083 | | |
4085 | 4084 | | |
4086 | | - | |
4087 | | - | |
4088 | | - | |
| 4085 | + | |
| 4086 | + | |
4089 | 4087 | | |
4090 | 4088 | | |
4091 | 4089 | | |
| |||
4146 | 4144 | | |
4147 | 4145 | | |
4148 | 4146 | | |
4149 | | - | |
4150 | | - | |
4151 | | - | |
4152 | | - | |
| 4147 | + | |
| 4148 | + | |
| 4149 | + | |
4153 | 4150 | | |
4154 | 4151 | | |
4155 | 4152 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2648 | 2648 | | |
2649 | 2649 | | |
2650 | 2650 | | |
2651 | | - | |
2652 | | - | |
2653 | | - | |
| 2651 | + | |
| 2652 | + | |
2654 | 2653 | | |
2655 | 2654 | | |
2656 | 2655 | | |
| |||
2686 | 2685 | | |
2687 | 2686 | | |
2688 | 2687 | | |
2689 | | - | |
2690 | | - | |
2691 | | - | |
| 2688 | + | |
| 2689 | + | |
2692 | 2690 | | |
2693 | 2691 | | |
2694 | 2692 | | |
| |||
2727 | 2725 | | |
2728 | 2726 | | |
2729 | 2727 | | |
2730 | | - | |
2731 | | - | |
2732 | | - | |
2733 | | - | |
| 2728 | + | |
| 2729 | + | |
| 2730 | + | |
2734 | 2731 | | |
2735 | 2732 | | |
2736 | 2733 | | |
| |||
0 commit comments