cranelift: rewrite iabs(ineg(x)) and iabs(iabs(x)) (#6072)

* cranelift: rerwite `iabs(ineg(x))`` and `iabs(iabs(x))`

* Fix comment on `iabs(iabs(x))` rewrite

* Remove subsume on rewrite for `iabs(ineg(x))`
This commit is contained in:
Karl Meakin
2023-03-21 00:12:21 +00:00
committed by GitHub
parent a3b21031d4
commit 7d9318fe77
2 changed files with 25 additions and 0 deletions

View File

@@ -39,6 +39,14 @@
(rule (simplify (imul ty (ineg ty x) (ineg ty y)))
(subsume (imul ty x y)))
;; iabs(ineg(x)) == iabs(x).
(rule (simplify (iabs ty (ineg ty x)))
(iabs ty x))
;; iabs(iabs(x)) == iabs(x).
(rule (simplify (iabs ty inner @ (iabs ty x)))
(subsume inner))
;; x-x == 0.
(rule (simplify (isub (fits_in_64 (ty_int ty)) x x)) (subsume (iconst ty (imm64 0))))