Commit b5c4524
committed
[AArch64][GlobalISel] Add a constant funnel shift post-legalizer combine.
We want to be able to produce extr instructions post-legalization. They are
legal for scalars, acting as a funnel shifts with a constant shift amount.
Unfortunately I'm not sure if there is a way currently to represent that in the
legalization rules, but it might be useful for several operations - to be able
to treat and test operands with constant operands as legal or not.
This adds a change to the existing matchOrShiftToFunnelShift so that AArch64
can generate such instructions post-legalization providing that the operation
is scalar and the shift amount is constant. It doesn't feel like the best
solution - any thoughts on alternatives?1 parent 342f212 commit b5c4524
File tree
8 files changed
+340
-392
lines changed- llvm
- include/llvm
- CodeGen/GlobalISel
- Target/GlobalISel
- lib
- CodeGen/GlobalISel
- Target/AArch64
- test/CodeGen/AArch64
8 files changed
+340
-392
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
627 | 627 | | |
628 | 628 | | |
629 | 629 | | |
630 | | - | |
| 630 | + | |
| 631 | + | |
631 | 632 | | |
632 | 633 | | |
633 | 634 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1000 | 1000 | | |
1001 | 1001 | | |
1002 | 1002 | | |
1003 | | - | |
| 1003 | + | |
1004 | 1004 | | |
1005 | 1005 | | |
1006 | 1006 | | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
1007 | 1015 | | |
1008 | 1016 | | |
1009 | 1017 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4390 | 4390 | | |
4391 | 4391 | | |
4392 | 4392 | | |
| 4393 | + | |
4393 | 4394 | | |
4394 | 4395 | | |
4395 | 4396 | | |
| |||
4409 | 4410 | | |
4410 | 4411 | | |
4411 | 4412 | | |
4412 | | - | |
| 4413 | + | |
4413 | 4414 | | |
4414 | 4415 | | |
4415 | 4416 | | |
4416 | 4417 | | |
4417 | 4418 | | |
4418 | | - | |
4419 | 4419 | | |
4420 | 4420 | | |
4421 | 4421 | | |
4422 | 4422 | | |
4423 | 4423 | | |
4424 | | - | |
4425 | 4424 | | |
4426 | 4425 | | |
4427 | 4426 | | |
4428 | 4427 | | |
4429 | 4428 | | |
4430 | | - | |
4431 | 4429 | | |
4432 | 4430 | | |
4433 | 4431 | | |
4434 | 4432 | | |
4435 | 4433 | | |
4436 | | - | |
| 4434 | + | |
| 4435 | + | |
4437 | 4436 | | |
4438 | 4437 | | |
4439 | 4438 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
367 | 367 | | |
368 | 368 | | |
369 | 369 | | |
370 | | - | |
| 370 | + | |
| 371 | + | |
371 | 372 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
| 74 | + | |
75 | 75 | | |
76 | | - | |
77 | 76 | | |
78 | 77 | | |
79 | 78 | | |
| |||
108 | 107 | | |
109 | 108 | | |
110 | 109 | | |
111 | | - | |
112 | | - | |
| 110 | + | |
113 | 111 | | |
114 | 112 | | |
115 | 113 | | |
| |||
0 commit comments