Skip to content

Commit f49bc03

Browse files
committed
test
1 parent 5fec19d commit f49bc03

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
test optimize
2+
set opt_level=speed
3+
target x86_64
4+
5+
;; iadd has cost 3, imul has cost 10
6+
;; (rule (simplify (ireduce ty (iadd _ x y))) (iadd ty (ireduce ty x) (ireduce ty y)))
7+
8+
function %f0(i32, i32) -> i16 {
9+
block0(v0: i32, v1: i32):
10+
v2 = imul.i32 v0, v1
11+
v3 = imul.i32 v1, v0
12+
v4 = imul.i32 v2, v3
13+
v5 = imul.i32 v3, v2
14+
v6 = imul.i32 v4, v5
15+
v7 = imul.i32 v6, v6
16+
v8 = imul.i32 v7, v7
17+
v9 = imul.i32 v8, v8
18+
v10 = imul.i32 v9, v9
19+
v11 = imul.i32 v10, v10
20+
v12 = imul.i32 v11, v11
21+
v13 = imul.i32 v12, v12
22+
v14 = imul.i32 v13, v13
23+
v15 = imul.i32 v14, v14
24+
v16 = imul.i32 v15, v15
25+
v17 = imul.i32 v16, v16
26+
v18 = imul.i32 v17, v17
27+
v19 = imul.i32 v18, v18
28+
v20 = imul.i32 v19, v19
29+
v21 = imul.i32 v20, v20
30+
v22 = imul.i32 v21, v21
31+
v23 = imul.i32 v22, v22
32+
v24 = imul.i32 v23, v23
33+
v25 = isub.i32 v24, v1
34+
;; Chain of imuls saturate to infinity w/o DAG cost model
35+
;; then do a rewrite to a more expensive thing
36+
v26 = iadd.i32 v24, v25
37+
v27 = ireduce.i16 v26
38+
v28 = ireduce.i16 v0
39+
v29 = iadd.i16 v27, v28
40+
return v29
41+
}

0 commit comments

Comments
 (0)