Skip to content

Commit a7c6fdd

Browse files
authored
[Cranelift] delete extend/reduce rule (#13031)
[Cranelift] filetest error fix
1 parent 73d2d22 commit a7c6fdd

5 files changed

Lines changed: 4 additions & 75 deletions

File tree

cranelift/codegen/src/opts/arithmetic.isle

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -406,18 +406,6 @@
406406
(rule (simplify (ineg ty (imul ty (ineg ty y) x))) (imul ty x y))
407407
(rule (simplify (ineg ty (imul ty x (ineg ty y)))) (imul ty x y))
408408

409-
;; ireduce(xext(a) + xext(b)) --> a + b
410-
(rule (simplify (ireduce ty (iadd cty (sextend cty x) (sextend cty y)))) (iadd ty x y))
411-
(rule (simplify (ireduce ty (iadd cty (sextend cty x) (uextend cty y)))) (iadd ty x y))
412-
(rule (simplify (ireduce ty (iadd cty (uextend cty x) (sextend cty y)))) (iadd ty x y))
413-
(rule (simplify (ireduce ty (iadd cty (uextend cty x) (uextend cty y)))) (iadd ty x y))
414-
415-
;; ireduce(xext(a) - xext(b)) --> a - b
416-
(rule (simplify (ireduce ty (isub cty (sextend cty x) (sextend cty y)))) (isub ty x y))
417-
(rule (simplify (ireduce ty (isub cty (sextend cty x) (uextend cty y)))) (isub ty x y))
418-
(rule (simplify (ireduce ty (isub cty (uextend cty x) (sextend cty y)))) (isub ty x y))
419-
(rule (simplify (ireduce ty (isub cty (uextend cty x) (uextend cty y)))) (isub ty x y))
420-
421409
;; max(x, y) >= x
422410
(rule (simplify (sge ty (smax ty x y) x)) (iconst_u ty 1))
423411
(rule (simplify (sge ty (smax ty y x) x)) (iconst_u ty 1))

cranelift/filetests/filetests/egraph/arithmetic-precise.clif

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -340,38 +340,6 @@ block0(v0: i32, v1: i32):
340340
; return v5
341341
; }
342342

343-
;; ireduce(sextend(x) + uextend(y)) --> x + y
344-
function %test_ireduce_iadd_extends(i8, i8) -> i8 fast {
345-
block0(v0: i8, v1: i8):
346-
v2 = sextend.i16 v0
347-
v3 = uextend.i16 v1
348-
v4 = iadd v2, v3
349-
v5 = ireduce.i8 v4
350-
return v5
351-
}
352-
353-
; function %test_ireduce_iadd_extends(i8, i8) -> i8 fast {
354-
; block0(v0: i8, v1: i8):
355-
; v6 = iadd v0, v1
356-
; return v6
357-
; }
358-
359-
;; ireduce(sextend(x) - uextend(y)) --> x - y
360-
function %test_ireduce_isub_extends(i8, i8) -> i8 fast {
361-
block0(v0: i8, v1: i8):
362-
v2 = sextend.i16 v0
363-
v3 = uextend.i16 v1
364-
v4 = isub v2, v3
365-
v5 = ireduce.i8 v4
366-
return v5
367-
}
368-
369-
; function %test_ireduce_isub_extends(i8, i8) -> i8 fast {
370-
; block0(v0: i8, v1: i8):
371-
; v6 = isub v0, v1
372-
; return v6
373-
; }
374-
375343
;; smax(x, y) >= x --> true
376344
function %test_sge_smax_x(i32, i32) -> i8 fast {
377345
block0(v0: i32, v1: i32):

cranelift/filetests/filetests/egraph/arithmetic.clif

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,8 +363,8 @@ block0(v0: i16, v1: i16, v2: i16):
363363
return v8
364364
}
365365

366-
; check: v10 = iadd v0, v1
367-
; check: v15 = iadd v10, v2
366+
; check: v12 = iadd v0, v1
367+
; check: v15 = iadd v12, v2
368368
; check: return v15
369369

370370
;; or(x, C) + (-C) --> and(x, ~C)

cranelift/filetests/filetests/egraph/extends.clif

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,8 @@ block0(v0: i16, v1: i16):
179179
return v5
180180
}
181181

182-
; check: v6 = iadd v0, v1
183-
; check: return v6
182+
; check: v8 = iadd v0, v1
183+
; check: return v8
184184

185185
function %extend_bxor_reduce(i64, i64) -> i64 {
186186
block0(v0: i64, v1: i64):

cranelift/filetests/filetests/runtests/arithmetic.clif

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -881,33 +881,6 @@ block0(v0: i32, v1: i32):
881881
; run: %test_ineg_imul_ineg_rhs(0, 0) == 0
882882
; run: %test_ineg_imul_ineg_rhs(1, 2) == 2
883883

884-
function %test_ireduce_iadd_extends(i8, i8) -> i8 fast {
885-
block0(v0: i8, v1: i8):
886-
v2 = sextend.i16 v0
887-
v3 = uextend.i16 v1
888-
v4 = iadd v2, v3
889-
v5 = ireduce.i8 v4
890-
return v5
891-
}
892-
893-
; run: %test_ireduce_iadd_extends(0, 0) == 0
894-
; run: %test_ireduce_iadd_extends(1, 2) == 3
895-
896-
function %test_ireduce_isub_extends(i8, i8) -> i8 fast {
897-
block0(v0: i8, v1: i8):
898-
v2 = sextend.i16 v0
899-
v3 = uextend.i16 v1
900-
v4 = isub v2, v3
901-
v5 = ireduce.i8 v4
902-
return v5
903-
}
904-
905-
; run: %test_ireduce_isub_extends(0, 0) == 0
906-
; run: %test_ireduce_isub_extends(5, 2) == 3
907-
; run: %test_ireduce_isub_extends(0, 1) == -1
908-
; run: %test_ireduce_isub_extends(-1, 1) == -2
909-
; run: %test_ireduce_isub_extends(-128, 1) == 127
910-
911884
function %test_sge_smax_x(i32, i32) -> i8 fast {
912885
block0(v0: i32, v1: i32):
913886
v2 = smax v0, v1

0 commit comments

Comments
 (0)