|
2688 | 2688 | && x5.Uses == 1 |
2689 | 2689 | && x6.Uses == 1 |
2690 | 2690 | && clobber(x0, x1, x2, x3, x4, x5, x6) |
2691 | | - => (MOVDstore [i-7] {s} ptr (REV <w.Type> w) mem) |
| 2691 | + => (MOVDstore [i-7] {s} ptr (REV <typ.UInt64> w) mem) |
2692 | 2692 | (MOVBstore [7] {s} p w |
2693 | 2693 | x0:(MOVBstore [6] {s} p (SRLconst [8] w) |
2694 | 2694 | x1:(MOVBstore [5] {s} p (SRLconst [16] w) |
|
2708 | 2708 | && (isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) || isSamePtr(ptr0, idx1) && isSamePtr(idx0, ptr1)) |
2709 | 2709 | && isSamePtr(p1, p) |
2710 | 2710 | && clobber(x0, x1, x2, x3, x4, x5, x6) |
2711 | | - => (MOVDstoreidx ptr0 idx0 (REV <w.Type> w) mem) |
| 2711 | + => (MOVDstoreidx ptr0 idx0 (REV <typ.UInt64> w) mem) |
2712 | 2712 | (MOVBstore [i] {s} ptr w |
2713 | 2713 | x0:(MOVBstore [i-1] {s} ptr (UBFX [armBFAuxInt(8, 24)] w) |
2714 | 2714 | x1:(MOVBstore [i-2] {s} ptr (UBFX [armBFAuxInt(16, 16)] w) |
|
2717 | 2717 | && x1.Uses == 1 |
2718 | 2718 | && x2.Uses == 1 |
2719 | 2719 | && clobber(x0, x1, x2) |
2720 | | - => (MOVWstore [i-3] {s} ptr (REVW <w.Type> w) mem) |
| 2720 | + => (MOVWstore [i-3] {s} ptr (REVW <typ.UInt32> w) mem) |
2721 | 2721 | (MOVBstore [3] {s} p w |
2722 | 2722 | x0:(MOVBstore [2] {s} p (UBFX [armBFAuxInt(8, 24)] w) |
2723 | 2723 | x1:(MOVBstore [1] {s} p1:(ADD ptr1 idx1) (UBFX [armBFAuxInt(16, 16)] w) |
|
2729 | 2729 | && (isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) || isSamePtr(ptr0, idx1) && isSamePtr(idx0, ptr1)) |
2730 | 2730 | && isSamePtr(p1, p) |
2731 | 2731 | && clobber(x0, x1, x2) |
2732 | | - => (MOVWstoreidx ptr0 idx0 (REVW <w.Type> w) mem) |
| 2732 | + => (MOVWstoreidx ptr0 idx0 (REVW <typ.UInt32> w) mem) |
2733 | 2733 | (MOVBstoreidx ptr (ADDconst [3] idx) w |
2734 | 2734 | x0:(MOVBstoreidx ptr (ADDconst [2] idx) (UBFX [armBFAuxInt(8, 24)] w) |
2735 | 2735 | x1:(MOVBstoreidx ptr (ADDconst [1] idx) (UBFX [armBFAuxInt(16, 16)] w) |
|
2738 | 2738 | && x1.Uses == 1 |
2739 | 2739 | && x2.Uses == 1 |
2740 | 2740 | && clobber(x0, x1, x2) |
2741 | | - => (MOVWstoreidx ptr idx (REVW <w.Type> w) mem) |
| 2741 | + => (MOVWstoreidx ptr idx (REVW <typ.UInt32> w) mem) |
2742 | 2742 | (MOVBstoreidx ptr idx w |
2743 | 2743 | x0:(MOVBstoreidx ptr (ADDconst [1] idx) (UBFX [armBFAuxInt(8, 24)] w) |
2744 | 2744 | x1:(MOVBstoreidx ptr (ADDconst [2] idx) (UBFX [armBFAuxInt(16, 16)] w) |
|
2756 | 2756 | && x1.Uses == 1 |
2757 | 2757 | && x2.Uses == 1 |
2758 | 2758 | && clobber(x0, x1, x2) |
2759 | | - => (MOVWstore [i-3] {s} ptr (REVW <w.Type> w) mem) |
| 2759 | + => (MOVWstore [i-3] {s} ptr (REVW <typ.UInt32> w) mem) |
2760 | 2760 | (MOVBstore [3] {s} p w |
2761 | 2761 | x0:(MOVBstore [2] {s} p (SRLconst [8] (MOVDreg w)) |
2762 | 2762 | x1:(MOVBstore [1] {s} p1:(ADD ptr1 idx1) (SRLconst [16] (MOVDreg w)) |
|
2768 | 2768 | && (isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) || isSamePtr(ptr0, idx1) && isSamePtr(idx0, ptr1)) |
2769 | 2769 | && isSamePtr(p1, p) |
2770 | 2770 | && clobber(x0, x1, x2) |
2771 | | - => (MOVWstoreidx ptr0 idx0 (REVW <w.Type> w) mem) |
| 2771 | + => (MOVWstoreidx ptr0 idx0 (REVW <typ.UInt32> w) mem) |
2772 | 2772 | (MOVBstore [i] {s} ptr w |
2773 | 2773 | x0:(MOVBstore [i-1] {s} ptr (SRLconst [8] w) |
2774 | 2774 | x1:(MOVBstore [i-2] {s} ptr (SRLconst [16] w) |
|
2777 | 2777 | && x1.Uses == 1 |
2778 | 2778 | && x2.Uses == 1 |
2779 | 2779 | && clobber(x0, x1, x2) |
2780 | | - => (MOVWstore [i-3] {s} ptr (REVW <w.Type> w) mem) |
| 2780 | + => (MOVWstore [i-3] {s} ptr (REVW <typ.UInt32> w) mem) |
2781 | 2781 | (MOVBstore [3] {s} p w |
2782 | 2782 | x0:(MOVBstore [2] {s} p (SRLconst [8] w) |
2783 | 2783 | x1:(MOVBstore [1] {s} p1:(ADD ptr1 idx1) (SRLconst [16] w) |
|
2789 | 2789 | && (isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) || isSamePtr(ptr0, idx1) && isSamePtr(idx0, ptr1)) |
2790 | 2790 | && isSamePtr(p1, p) |
2791 | 2791 | && clobber(x0, x1, x2) |
2792 | | - => (MOVWstoreidx ptr0 idx0 (REVW <w.Type> w) mem) |
| 2792 | + => (MOVWstoreidx ptr0 idx0 (REVW <typ.UInt32> w) mem) |
2793 | 2793 | (MOVBstore [i] {s} ptr w x:(MOVBstore [i-1] {s} ptr (SRLconst [8] w) mem)) |
2794 | 2794 | && x.Uses == 1 |
2795 | 2795 | && clobber(x) |
2796 | | - => (MOVHstore [i-1] {s} ptr (REV16W <w.Type> w) mem) |
| 2796 | + => (MOVHstore [i-1] {s} ptr (REV16W <typ.UInt16> w) mem) |
2797 | 2797 | (MOVBstore [1] {s} (ADD ptr1 idx1) w x:(MOVBstoreidx ptr0 idx0 (SRLconst [8] w) mem)) |
2798 | 2798 | && x.Uses == 1 |
2799 | 2799 | && s == nil |
2800 | 2800 | && (isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) || isSamePtr(ptr0, idx1) && isSamePtr(idx0, ptr1)) |
2801 | 2801 | && clobber(x) |
2802 | | - => (MOVHstoreidx ptr0 idx0 (REV16W <w.Type> w) mem) |
| 2802 | + => (MOVHstoreidx ptr0 idx0 (REV16W <typ.UInt16> w) mem) |
2803 | 2803 | (MOVBstore [i] {s} ptr w x:(MOVBstore [i-1] {s} ptr (UBFX [armBFAuxInt(8, 8)] w) mem)) |
2804 | 2804 | && x.Uses == 1 |
2805 | 2805 | && clobber(x) |
2806 | | - => (MOVHstore [i-1] {s} ptr (REV16W <w.Type> w) mem) |
| 2806 | + => (MOVHstore [i-1] {s} ptr (REV16W <typ.UInt16> w) mem) |
2807 | 2807 | (MOVBstore [1] {s} (ADD ptr1 idx1) w x:(MOVBstoreidx ptr0 idx0 (UBFX [armBFAuxInt(8, 8)] w) mem)) |
2808 | 2808 | && x.Uses == 1 |
2809 | 2809 | && s == nil |
2810 | 2810 | && (isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) || isSamePtr(ptr0, idx1) && isSamePtr(idx0, ptr1)) |
2811 | 2811 | && clobber(x) |
2812 | | - => (MOVHstoreidx ptr0 idx0 (REV16W <w.Type> w) mem) |
| 2812 | + => (MOVHstoreidx ptr0 idx0 (REV16W <typ.UInt16> w) mem) |
2813 | 2813 | (MOVBstoreidx ptr (ADDconst [1] idx) w x:(MOVBstoreidx ptr idx (UBFX [armBFAuxInt(8, 8)] w) mem)) |
2814 | 2814 | && x.Uses == 1 |
2815 | 2815 | && clobber(x) |
2816 | | - => (MOVHstoreidx ptr idx (REV16W <w.Type> w) mem) |
| 2816 | + => (MOVHstoreidx ptr idx (REV16W <typ.UInt16> w) mem) |
2817 | 2817 | (MOVBstoreidx ptr idx w x:(MOVBstoreidx ptr (ADDconst [1] idx) (UBFX [armBFAuxInt(8, 8)] w) mem)) |
2818 | 2818 | && x.Uses == 1 |
2819 | 2819 | && clobber(x) |
2820 | 2820 | => (MOVHstoreidx ptr idx w mem) |
2821 | 2821 | (MOVBstore [i] {s} ptr w x:(MOVBstore [i-1] {s} ptr (SRLconst [8] (MOVDreg w)) mem)) |
2822 | 2822 | && x.Uses == 1 |
2823 | 2823 | && clobber(x) |
2824 | | - => (MOVHstore [i-1] {s} ptr (REV16W <w.Type> w) mem) |
| 2824 | + => (MOVHstore [i-1] {s} ptr (REV16W <typ.UInt16> w) mem) |
2825 | 2825 | (MOVBstore [1] {s} (ADD ptr1 idx1) w x:(MOVBstoreidx ptr0 idx0 (SRLconst [8] (MOVDreg w)) mem)) |
2826 | 2826 | && x.Uses == 1 |
2827 | 2827 | && s == nil |
2828 | 2828 | && (isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) || isSamePtr(ptr0, idx1) && isSamePtr(idx0, ptr1)) |
2829 | 2829 | && clobber(x) |
2830 | | - => (MOVHstoreidx ptr0 idx0 (REV16W <w.Type> w) mem) |
| 2830 | + => (MOVHstoreidx ptr0 idx0 (REV16W <typ.UInt16> w) mem) |
2831 | 2831 | (MOVBstore [i] {s} ptr w x:(MOVBstore [i-1] {s} ptr (UBFX [armBFAuxInt(8, 24)] w) mem)) |
2832 | 2832 | && x.Uses == 1 |
2833 | 2833 | && clobber(x) |
2834 | | - => (MOVHstore [i-1] {s} ptr (REV16W <w.Type> w) mem) |
| 2834 | + => (MOVHstore [i-1] {s} ptr (REV16W <typ.UInt16> w) mem) |
2835 | 2835 | (MOVBstore [1] {s} (ADD ptr1 idx1) w x:(MOVBstoreidx ptr0 idx0 (UBFX [armBFAuxInt(8, 24)] w) mem)) |
2836 | 2836 | && x.Uses == 1 |
2837 | 2837 | && s == nil |
2838 | 2838 | && (isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) || isSamePtr(ptr0, idx1) && isSamePtr(idx0, ptr1)) |
2839 | 2839 | && clobber(x) |
2840 | | - => (MOVHstoreidx ptr0 idx0 (REV16W <w.Type> w) mem) |
| 2840 | + => (MOVHstoreidx ptr0 idx0 (REV16W <typ.UInt16> w) mem) |
2841 | 2841 |
|
2842 | 2842 | // FP simplification |
2843 | 2843 | (FNEGS (FMULS x y)) => (FNMULS x y) |
|
0 commit comments