Commit 3f08dcb
Automerge: [SCEV] Try to push op into ZExt: C * zext (A + B) -> zext (A*C + B*C) (#155300)
Try to push constant multiply operand into a ZExt containing an add, if
possible. In general we are trying to push down ops through ZExt if
possible. This is similar to
llvm/llvm-project#151227 which did the same for
additions.
For now this is restricted to adds with a constant operand, which is
similar to some of the logic above.
This enables some additional simplifications.
Alive2 Proof: https://alive2.llvm.org/ce/z/97pbSL
PR: llvm/llvm-project#155300File tree
6 files changed
+33
-20
lines changed- llvm
- lib/Analysis
- test
- Analysis/ScalarEvolution
- Transforms
- IndVarSimplify
- LoopIdiom
- X86
- LoopVectorize
6 files changed
+33
-20
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3200 | 3200 | | |
3201 | 3201 | | |
3202 | 3202 | | |
| 3203 | + | |
| 3204 | + | |
| 3205 | + | |
| 3206 | + | |
| 3207 | + | |
| 3208 | + | |
| 3209 | + | |
| 3210 | + | |
| 3211 | + | |
| 3212 | + | |
| 3213 | + | |
| 3214 | + | |
| 3215 | + | |
| 3216 | + | |
| 3217 | + | |
3203 | 3218 | | |
3204 | 3219 | | |
3205 | 3220 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1231 | 1231 | | |
1232 | 1232 | | |
1233 | 1233 | | |
1234 | | - | |
| 1234 | + | |
1235 | 1235 | | |
1236 | 1236 | | |
1237 | 1237 | | |
| |||
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | | - | |
80 | 79 | | |
81 | 80 | | |
82 | 81 | | |
83 | | - | |
84 | | - | |
85 | 82 | | |
86 | 83 | | |
87 | 84 | | |
88 | 85 | | |
89 | 86 | | |
90 | | - | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
| 20 | + | |
20 | 21 | | |
21 | | - | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
| 13 | + | |
13 | 14 | | |
14 | | - | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
492 | 492 | | |
493 | 493 | | |
494 | 494 | | |
495 | | - | |
496 | | - | |
497 | | - | |
| 495 | + | |
| 496 | + | |
498 | 497 | | |
499 | | - | |
500 | 498 | | |
501 | 499 | | |
502 | | - | |
| 500 | + | |
503 | 501 | | |
504 | 502 | | |
505 | 503 | | |
| |||
511 | 509 | | |
512 | 510 | | |
513 | 511 | | |
514 | | - | |
515 | | - | |
| 512 | + | |
| 513 | + | |
516 | 514 | | |
517 | 515 | | |
518 | | - | |
| 516 | + | |
519 | 517 | | |
520 | 518 | | |
521 | 519 | | |
| |||
530 | 528 | | |
531 | 529 | | |
532 | 530 | | |
533 | | - | |
| 531 | + | |
534 | 532 | | |
535 | 533 | | |
536 | 534 | | |
| |||
0 commit comments