|
1723 | 1723 | (TSTshiftRO x (MOVDconst [c]) [d]) => (TSTconst x [rotateRight64(c, d)])
|
1724 | 1724 |
|
1725 | 1725 | // simplification with *shift ops
|
1726 |
| -(SUBshiftLL x (SLLconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1727 |
| -(SUBshiftRL x (SRLconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1728 |
| -(SUBshiftRA x (SRAconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1729 |
| -(ANDshiftLL x y:(SLLconst x [c]) [d]) && c==d => y |
1730 |
| -(ANDshiftRL x y:(SRLconst x [c]) [d]) && c==d => y |
1731 |
| -(ANDshiftRA x y:(SRAconst x [c]) [d]) && c==d => y |
1732 |
| -(ANDshiftRO x y:(RORconst x [c]) [d]) && c==d => y |
1733 |
| -(ORshiftLL x y:(SLLconst x [c]) [d]) && c==d => y |
1734 |
| -(ORshiftRL x y:(SRLconst x [c]) [d]) && c==d => y |
1735 |
| -(ORshiftRA x y:(SRAconst x [c]) [d]) && c==d => y |
1736 |
| -(ORshiftRO x y:(RORconst x [c]) [d]) && c==d => y |
1737 |
| -(XORshiftLL x (SLLconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1738 |
| -(XORshiftRL x (SRLconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1739 |
| -(XORshiftRA x (SRAconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1740 |
| -(XORshiftRO x (RORconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1741 |
| -(BICshiftLL x (SLLconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1742 |
| -(BICshiftRL x (SRLconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1743 |
| -(BICshiftRA x (SRAconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1744 |
| -(BICshiftRO x (RORconst x [c]) [d]) && c==d => (MOVDconst [0]) |
1745 |
| -(EONshiftLL x (SLLconst x [c]) [d]) && c==d => (MOVDconst [-1]) |
1746 |
| -(EONshiftRL x (SRLconst x [c]) [d]) && c==d => (MOVDconst [-1]) |
1747 |
| -(EONshiftRA x (SRAconst x [c]) [d]) && c==d => (MOVDconst [-1]) |
1748 |
| -(EONshiftRO x (RORconst x [c]) [d]) && c==d => (MOVDconst [-1]) |
1749 |
| -(ORNshiftLL x (SLLconst x [c]) [d]) && c==d => (MOVDconst [-1]) |
1750 |
| -(ORNshiftRL x (SRLconst x [c]) [d]) && c==d => (MOVDconst [-1]) |
1751 |
| -(ORNshiftRA x (SRAconst x [c]) [d]) && c==d => (MOVDconst [-1]) |
1752 |
| -(ORNshiftRO x (RORconst x [c]) [d]) && c==d => (MOVDconst [-1]) |
| 1726 | +(SUBshiftLL (SLLconst x [c]) x [c]) => (MOVDconst [0]) |
| 1727 | +(SUBshiftRL (SRLconst x [c]) x [c]) => (MOVDconst [0]) |
| 1728 | +(SUBshiftRA (SRAconst x [c]) x [c]) => (MOVDconst [0]) |
| 1729 | +(ANDshiftLL y:(SLLconst x [c]) x [c]) => y |
| 1730 | +(ANDshiftRL y:(SRLconst x [c]) x [c]) => y |
| 1731 | +(ANDshiftRA y:(SRAconst x [c]) x [c]) => y |
| 1732 | +(ANDshiftRO y:(RORconst x [c]) x [c]) => y |
| 1733 | +(ORshiftLL y:(SLLconst x [c]) x [c]) => y |
| 1734 | +(ORshiftRL y:(SRLconst x [c]) x [c]) => y |
| 1735 | +(ORshiftRA y:(SRAconst x [c]) x [c]) => y |
| 1736 | +(ORshiftRO y:(RORconst x [c]) x [c]) => y |
| 1737 | +(XORshiftLL (SLLconst x [c]) x [c]) => (MOVDconst [0]) |
| 1738 | +(XORshiftRL (SRLconst x [c]) x [c]) => (MOVDconst [0]) |
| 1739 | +(XORshiftRA (SRAconst x [c]) x [c]) => (MOVDconst [0]) |
| 1740 | +(XORshiftRO (RORconst x [c]) x [c]) => (MOVDconst [0]) |
| 1741 | +(BICshiftLL (SLLconst x [c]) x [c]) => (MOVDconst [0]) |
| 1742 | +(BICshiftRL (SRLconst x [c]) x [c]) => (MOVDconst [0]) |
| 1743 | +(BICshiftRA (SRAconst x [c]) x [c]) => (MOVDconst [0]) |
| 1744 | +(BICshiftRO (RORconst x [c]) x [c]) => (MOVDconst [0]) |
| 1745 | +(EONshiftLL (SLLconst x [c]) x [c]) => (MOVDconst [-1]) |
| 1746 | +(EONshiftRL (SRLconst x [c]) x [c]) => (MOVDconst [-1]) |
| 1747 | +(EONshiftRA (SRAconst x [c]) x [c]) => (MOVDconst [-1]) |
| 1748 | +(EONshiftRO (RORconst x [c]) x [c]) => (MOVDconst [-1]) |
| 1749 | +(ORNshiftLL (SLLconst x [c]) x [c]) => (MOVDconst [-1]) |
| 1750 | +(ORNshiftRL (SRLconst x [c]) x [c]) => (MOVDconst [-1]) |
| 1751 | +(ORNshiftRA (SRAconst x [c]) x [c]) => (MOVDconst [-1]) |
| 1752 | +(ORNshiftRO (RORconst x [c]) x [c]) => (MOVDconst [-1]) |
1753 | 1753 |
|
1754 | 1754 | // Generate rotates with const shift
|
1755 | 1755 | (ADDshiftLL [c] (SRLconst x [64-c]) x) => (RORconst [64-c] x)
|
|
0 commit comments