Commit 005f0fa
committed
[SLP]Improved/fixed FMAD support in reductions
In the initial patch for FMAD, potential FMAD nodes were completely
excluded from the reduction analysis for the smaller patch. But it may
cause regressions.
This patch adds better detection of scalar FMAD reduction operations and
tries to correctly calculate the costs of the FMAD reduction operations
(also, excluding the costs of the scalar fmuls) and split reduction
operations, combined with regular FMADs.
Fixed the handling for reduced values with many uses.
Reviewers: RKSimon, gregbedwell, hiraditya
Reviewed By: RKSimon
Pull Request: llvm#1527871 parent cea2c86 commit 005f0fa
File tree
5 files changed
+189
-72
lines changed- llvm
- lib/Transforms/Vectorize
- test/Transforms/SLPVectorizer
- AArch64
- RISCV
- X86
5 files changed
+189
-72
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23842 | 23842 | | |
23843 | 23843 | | |
23844 | 23844 | | |
23845 | | - | |
| 23845 | + | |
| 23846 | + | |
23846 | 23847 | | |
23847 | 23848 | | |
23848 | 23849 | | |
| |||
24241 | 24242 | | |
24242 | 24243 | | |
24243 | 24244 | | |
24244 | | - | |
| 24245 | + | |
24245 | 24246 | | |
24246 | 24247 | | |
24247 | 24248 | | |
| |||
24546 | 24547 | | |
24547 | 24548 | | |
24548 | 24549 | | |
24549 | | - | |
| 24550 | + | |
| 24551 | + | |
| 24552 | + | |
24550 | 24553 | | |
24551 | 24554 | | |
24552 | 24555 | | |
| |||
24571 | 24574 | | |
24572 | 24575 | | |
24573 | 24576 | | |
| 24577 | + | |
| 24578 | + | |
| 24579 | + | |
| 24580 | + | |
| 24581 | + | |
| 24582 | + | |
| 24583 | + | |
| 24584 | + | |
| 24585 | + | |
| 24586 | + | |
| 24587 | + | |
| 24588 | + | |
| 24589 | + | |
| 24590 | + | |
| 24591 | + | |
| 24592 | + | |
24574 | 24593 | | |
24575 | 24594 | | |
24576 | 24595 | | |
| |||
24635 | 24654 | | |
24636 | 24655 | | |
24637 | 24656 | | |
24638 | | - | |
24639 | | - | |
| 24657 | + | |
| 24658 | + | |
| 24659 | + | |
| 24660 | + | |
| 24661 | + | |
| 24662 | + | |
| 24663 | + | |
| 24664 | + | |
| 24665 | + | |
| 24666 | + | |
| 24667 | + | |
| 24668 | + | |
| 24669 | + | |
| 24670 | + | |
| 24671 | + | |
| 24672 | + | |
| 24673 | + | |
| 24674 | + | |
| 24675 | + | |
| 24676 | + | |
| 24677 | + | |
| 24678 | + | |
| 24679 | + | |
| 24680 | + | |
| 24681 | + | |
| 24682 | + | |
| 24683 | + | |
| 24684 | + | |
| 24685 | + | |
| 24686 | + | |
| 24687 | + | |
| 24688 | + | |
| 24689 | + | |
| 24690 | + | |
| 24691 | + | |
| 24692 | + | |
| 24693 | + | |
| 24694 | + | |
| 24695 | + | |
24640 | 24696 | | |
24641 | 24697 | | |
24642 | 24698 | | |
| |||
25304 | 25360 | | |
25305 | 25361 | | |
25306 | 25362 | | |
25307 | | - | |
| 25363 | + | |
25308 | 25364 | | |
25309 | 25365 | | |
25310 | 25366 | | |
| |||
25449 | 25505 | | |
25450 | 25506 | | |
25451 | 25507 | | |
25452 | | - | |
| 25508 | + | |
25453 | 25509 | | |
25454 | 25510 | | |
25455 | 25511 | | |
| |||
Lines changed: 47 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
709 | 709 | | |
710 | 710 | | |
711 | 711 | | |
712 | | - | |
713 | | - | |
714 | | - | |
715 | | - | |
716 | | - | |
717 | | - | |
718 | | - | |
719 | | - | |
720 | | - | |
721 | | - | |
722 | | - | |
723 | | - | |
724 | | - | |
725 | | - | |
726 | | - | |
727 | | - | |
728 | | - | |
729 | | - | |
730 | | - | |
731 | | - | |
732 | | - | |
733 | | - | |
734 | | - | |
735 | | - | |
736 | | - | |
737 | | - | |
738 | | - | |
739 | | - | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
740 | 731 | | |
741 | 732 | | |
742 | 733 | | |
| |||
793 | 784 | | |
794 | 785 | | |
795 | 786 | | |
796 | | - | |
797 | | - | |
798 | | - | |
799 | | - | |
800 | | - | |
801 | | - | |
802 | | - | |
803 | | - | |
804 | | - | |
805 | | - | |
806 | | - | |
807 | | - | |
808 | | - | |
809 | | - | |
810 | | - | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
811 | 794 | | |
812 | 795 | | |
813 | 796 | | |
| |||
Lines changed: 17 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
14 | | - | |
15 | | - | |
| 13 | + | |
16 | 14 | | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
26 | 31 | | |
27 | 32 | | |
28 | 33 | | |
| |||
0 commit comments