craneleft: cancel ineg when args to imul (#6053)
* craneleft: cancel `ineg`/`iabs` when args to `imul` * Remove unsound `iabs(x) * iabs(y) == x*y` rewrite
This commit is contained in:
@@ -35,6 +35,10 @@
|
||||
;; ineg(ineg(x)) == x.
|
||||
(rule (simplify (ineg ty (ineg ty x))) (subsume x))
|
||||
|
||||
;; ineg(x) * ineg(y) == x*y.
|
||||
(rule (simplify (imul ty (ineg ty x) (ineg ty y)))
|
||||
(subsume (imul ty x y)))
|
||||
|
||||
;; x-x == 0.
|
||||
(rule (simplify (isub (fits_in_64 (ty_int ty)) x x)) (subsume (iconst ty (imm64 0))))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user