File tree Expand file tree Collapse file tree 11 files changed +3082
-339
lines changed Expand file tree Collapse file tree 11 files changed +3082
-339
lines changed Original file line number Diff line number Diff line change
1
+ (module
2
+ (type (;0;) (func ))
3
+ (type (;1;) (func (param i32 i32 i32 )))
4
+ (import " spectest" " print_i32" (func $print_i32 (param i32 )))
5
+
6
+ (global $max i32 (i32.const 3 ))
7
+
8
+ (func $qs (type 1 ) (param i32 i32 i32 )
9
+ (local i32 i32 i32 i32 i32 i32 i32 i32 )
10
+ local.get 1
11
+ local.get 2
12
+ i32.lt_s
13
+ if ;; label = @1
14
+ local.get 0
15
+ local.get 2
16
+ i32.const 2
17
+ i32.shl
18
+ i32.add
19
+ local.set 7
20
+ loop ;; label = @2
21
+ i32.const 0
22
+ local.set 3
23
+ local.get 2
24
+ local.get 1
25
+ i32.sub
26
+ local.tee 8
27
+ i32.const 0
28
+ i32.gt_s
29
+ if ;; label = @3
30
+ local.get 7
31
+ i32.load
32
+ local.set 6
33
+ i32.const 0
34
+ local.set 4
35
+ loop ;; label = @4
36
+ block ;; label = @5
37
+ local.get 6
38
+ local.get 0
39
+ local.get 1
40
+ local.get 3
41
+ i32.add
42
+ i32.const 2
43
+ i32.shl
44
+ i32.add
45
+ local.tee 5
46
+ i32.load
47
+ local.tee 9
48
+ i32.gt_s
49
+ if ;; label = @6
50
+ local.get 3
51
+ i32.const 1
52
+ i32.add
53
+ local.set 3
54
+ br 1 (;@5;)
55
+ end
56
+ local.get 5
57
+ local.get 0
58
+ local.get 2
59
+ local.get 4
60
+ i32.sub
61
+ i32.const 2
62
+ i32.shl
63
+ i32.add
64
+ local.tee 5
65
+ i32.const 4
66
+ i32.sub
67
+ local.tee 10
68
+ i32.load
69
+ i32.store
70
+ local.get 5
71
+ local.get 9
72
+ i32.store
73
+ local.get 10
74
+ local.get 6
75
+ i32.store
76
+ local.get 4
77
+ i32.const 1
78
+ i32.add
79
+ local.set 4
80
+ end
81
+ local.get 3
82
+ local.get 4
83
+ i32.add
84
+ local.get 8
85
+ i32.lt_s
86
+ br_if 0 (;@4;)
87
+ end
88
+ end
89
+ local.get 0
90
+ local.get 1
91
+ local.get 1
92
+ local.get 3
93
+ i32.add
94
+ local.tee 1
95
+ i32.const 1
96
+ i32.sub
97
+ call $qs
98
+ local.get 1
99
+ i32.const 1
100
+ i32.add
101
+ local.tee 1
102
+ local.get 2
103
+ i32.lt_s
104
+ br_if 0 (;@2;)
105
+ end
106
+ end )
107
+
108
+
109
+
110
+ (func $print (type 0 )
111
+ (local i32 i32 )
112
+ global.get $max
113
+ local.set 1
114
+ (loop
115
+ local.get 0
116
+ i32.const 4
117
+ i32.mul
118
+ i32.load
119
+ call $print_i32
120
+
121
+ local.get 0
122
+ i32.const 1
123
+ i32.add
124
+ local.tee 0
125
+ local.get 1
126
+ i32.ne
127
+ br_if 0
128
+ )
129
+
130
+ )
131
+
132
+ (func $start (type 0 )
133
+ (local i32 i32 )
134
+ global.get $max
135
+ local.set 1
136
+
137
+ (loop
138
+ local.get 0
139
+ i32.const 4
140
+ i32.mul
141
+ local.get 1
142
+ local.get 0
143
+ i32.sub
144
+ i32.store
145
+
146
+ local.get 0
147
+ i32.const 1
148
+ i32.add
149
+ local.tee 0
150
+ local.get 1
151
+ i32.ne
152
+ br_if 0
153
+ )
154
+ ;; call $print
155
+ i32.const 0
156
+ i32.const 0
157
+ global.get $max
158
+ call $qs
159
+ ;; call $print
160
+ )
161
+
162
+
163
+ (memory (;0;) 256 256 )
164
+
165
+ (start $start )
166
+
167
+ (func (export " read" ) (param i32 ) (result i32 )
168
+ (i32.load (local.get 0 ))
169
+ )
170
+
171
+ )
172
+
173
+ (assert_return (invoke " read" (i32.const 0 )) (i32.const 0 ))
174
+ (assert_return (invoke " read" (i32.const 4 )) (i32.const 1 ))
175
+ (assert_return (invoke " read" (i32.const 8 )) (i32.const 2 ))
Original file line number Diff line number Diff line change
1
+ normal fails:
2
+ huffman (out of bounds memory)
3
+ simd stuff
4
+ sometimes stuff with jit, due to reg alloc
You can’t perform that action at this time.
0 commit comments