Skip to content

Commit 66871ec

Browse files
committed
[Cranelift] use imm64 ops
1 parent a0ac138 commit 66871ec

3 files changed

Lines changed: 23 additions & 23 deletions

File tree

cranelift/codegen/src/opts/arithmetic.isle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,10 @@
226226
;; or(x, C) + (-C) --> and(x, ~C)
227227
(rule
228228
(simplify (iadd ty
229-
(bor ty x (iconst_s ty n))
230-
(iconst_s ty m)))
231-
(if-let m (i64_checked_neg n))
232-
(band ty x (iconst ty (imm64_masked ty (i64_cast_unsigned (i64_not n))))))
229+
(bor ty x (iconst ty n))
230+
(iconst ty m)))
231+
(if-let m (imm64_neg ty n))
232+
(band ty x (iconst ty (imm64_not ty n))))
233233

234234
;; (x + y) - (x | y) --> x & y
235235
(rule (simplify (isub ty (iadd ty x y) (bor ty x y))) (band ty x y))

cranelift/codegen/src/opts/cprop.isle

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -166,25 +166,25 @@
166166
;; - (add (sub x k1) k2) -> (add x (sub k2 k1))
167167
;; - (add (sub k1 x) k2) -> (sub (add k1 k2) x)
168168
(rule (simplify (isub ty
169-
(isub ty x (iconst ty (u64_from_imm64 k1)))
170-
(iconst ty (u64_from_imm64 k2))))
171-
(isub ty x (iconst ty (imm64_masked ty (u64_wrapping_add k1 k2)))))
169+
(isub ty x (iconst ty k1))
170+
(iconst ty k2)))
171+
(isub ty x (iconst ty (imm64_add ty k1 k2))))
172172
(rule (simplify (isub ty
173-
(isub ty (iconst ty (u64_from_imm64 k1)) x)
174-
(iconst ty (u64_from_imm64 k2))))
175-
(isub ty (iconst ty (imm64_masked ty (u64_wrapping_sub k1 k2))) x))
173+
(isub ty (iconst ty k1) x)
174+
(iconst ty k2)))
175+
(isub ty (iconst ty (imm64_sub ty k1 k2)) x))
176176
(rule (simplify (isub ty
177-
(iadd ty x (iconst ty (u64_from_imm64 k1)))
178-
(iconst ty (u64_from_imm64 k2))))
179-
(isub ty x (iconst ty (imm64_masked ty (u64_wrapping_sub k2 k1)))))
177+
(iadd ty x (iconst ty k1))
178+
(iconst ty k2)))
179+
(isub ty x (iconst ty (imm64_sub ty k2 k1))))
180180
(rule (simplify (iadd ty
181-
(isub ty x (iconst ty (u64_from_imm64 k1)))
182-
(iconst ty (u64_from_imm64 k2))))
183-
(iadd ty x (iconst ty (imm64_masked ty (u64_wrapping_sub k2 k1)))))
181+
(isub ty x (iconst ty k1))
182+
(iconst ty k2)))
183+
(iadd ty x (iconst ty (imm64_sub ty k2 k1))))
184184
(rule (simplify (iadd ty
185-
(isub ty (iconst ty (u64_from_imm64 k1)) x)
186-
(iconst ty (u64_from_imm64 k2))))
187-
(isub ty (iconst ty (imm64_masked ty (u64_wrapping_add k1 k2))) x))
185+
(isub ty (iconst ty k1) x)
186+
(iconst ty k2)))
187+
(isub ty (iconst ty (imm64_add ty k1 k2)) x))
188188

189189
(rule (simplify
190190
(imul ty (imul ty x k1 @ (iconst ty _)) k2 @ (iconst ty _)))
@@ -231,7 +231,7 @@
231231
(rule (simplify (isub ty x (iconst_s ty k)))
232232
(if-let true (u64_lt (i64_cast_unsigned (i64_wrapping_neg k))
233233
(i64_cast_unsigned k)))
234-
(iadd ty x (iconst ty (imm64_masked ty (i64_cast_unsigned (i64_wrapping_neg k))))))
234+
(iadd ty x (iconst ty (imm64_neg ty (imm64 (i64_cast_unsigned k))))))
235235

236236
;; A splat of a constant can become a direct `vconst` with the appropriate bit
237237
;; pattern.

cranelift/codegen/src/opts/selects.isle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,10 @@
9494

9595
;; fold add-select to select-add
9696
(rule (simplify
97-
(iadd ty (select ty c (iconst_u ty x) (iconst_u ty y)) (iconst_u ty z)))
97+
(iadd ty (select ty c (iconst ty x) (iconst ty y)) (iconst ty z)))
9898
(select ty c
99-
(iconst ty (imm64_masked ty (u64_wrapping_add x z)))
100-
(iconst ty (imm64_masked ty (u64_wrapping_add y z)))))
99+
(iconst ty (imm64_add ty x z))
100+
(iconst ty (imm64_add ty y z))))
101101

102102
(rule (simplify (select ty d a (select ty d _ y))) (select ty d a y))
103103
(rule (simplify (select ty d (select ty d x _) a)) (select ty d x a))

0 commit comments

Comments
 (0)