|
1896 | 1896 | (Neq(8|16|32|64) s:(Sub(8|16|32|64) x y) (Const(8|16|32|64) [0])) && s.Uses == 1 => (Neq(8|16|32|64) x y)
|
1897 | 1897 |
|
1898 | 1898 | // Optimize bitsets
|
1899 |
| -(Eq8 (And8 <t> x (Const8 <t> [y])) (Const8 <t> [y])) && oneBit8(y) |
1900 |
| - => (Neq8 (And8 <t> x (Const8 <t> [y])) (Const8 <t> [0])) |
1901 |
| -(Eq16 (And16 <t> x (Const16 <t> [y])) (Const16 <t> [y])) && oneBit16(y) |
1902 |
| - => (Neq16 (And16 <t> x (Const16 <t> [y])) (Const16 <t> [0])) |
1903 |
| -(Eq32 (And32 <t> x (Const32 <t> [y])) (Const32 <t> [y])) && oneBit32(y) |
1904 |
| - => (Neq32 (And32 <t> x (Const32 <t> [y])) (Const32 <t> [0])) |
1905 |
| -(Eq64 (And64 <t> x (Const64 <t> [y])) (Const64 <t> [y])) && oneBit64(y) |
1906 |
| - => (Neq64 (And64 <t> x (Const64 <t> [y])) (Const64 <t> [0])) |
1907 |
| -(Neq8 (And8 <t> x (Const8 <t> [y])) (Const8 <t> [y])) && oneBit8(y) |
1908 |
| - => (Eq8 (And8 <t> x (Const8 <t> [y])) (Const8 <t> [0])) |
1909 |
| -(Neq16 (And16 <t> x (Const16 <t> [y])) (Const16 <t> [y])) && oneBit16(y) |
1910 |
| - => (Eq16 (And16 <t> x (Const16 <t> [y])) (Const16 <t> [0])) |
1911 |
| -(Neq32 (And32 <t> x (Const32 <t> [y])) (Const32 <t> [y])) && oneBit32(y) |
1912 |
| - => (Eq32 (And32 <t> x (Const32 <t> [y])) (Const32 <t> [0])) |
1913 |
| -(Neq64 (And64 <t> x (Const64 <t> [y])) (Const64 <t> [y])) && oneBit64(y) |
1914 |
| - => (Eq64 (And64 <t> x (Const64 <t> [y])) (Const64 <t> [0])) |
| 1899 | +(Eq(8|16|32|64) (And(8|16|32|64) <t> x (Const(8|16|32|64) <t> [y])) (Const(8|16|32|64) <t> [y])) && oneBit(y) |
| 1900 | + => (Neq(8|16|32|64) (And(8|16|32|64) <t> x (Const(8|16|32|64) <t> [y])) (Const(8|16|32|64) <t> [0])) |
| 1901 | +(Neq(8|16|32|64) (And(8|16|32|64) <t> x (Const(8|16|32|64) <t> [y])) (Const(8|16|32|64) <t> [y])) && oneBit(y) |
| 1902 | + => (Eq(8|16|32|64) (And(8|16|32|64) <t> x (Const(8|16|32|64) <t> [y])) (Const(8|16|32|64) <t> [0])) |
1915 | 1903 |
|
1916 | 1904 | // Reassociate expressions involving
|
1917 | 1905 | // constants such that constants come first,
|
|
0 commit comments