|
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