js/src/jit-test/tests/ion/bug681185.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:96cd4c76fcd0
1 function test_lsh(x, y) {
2 return x << y;
3 }
4
5 function test_ursh(x, y) {
6 return x >>> y;
7 }
8
9 function test_rsh(x, y) {
10 return x >> y;
11 }
12
13 var x = 1;
14 assertEq(test_rsh(x, -1), 0);
15 assertEq(test_rsh(-1, x), -1);
16 assertEq(test_ursh(x, -1), 0);
17 assertEq(test_ursh(-1, x), 2147483647);
18 assertEq(test_lsh(x, -1), -2147483648);
19 assertEq(test_lsh(-1, x), -2);
20 assertEq(test_rsh(x, 1), 0);
21 assertEq(test_rsh(1, x), 0);
22 assertEq(test_ursh(x, 1), 0);
23 assertEq(test_ursh(1, x), 0);
24 assertEq(test_lsh(x, 1), 2);
25 assertEq(test_lsh(1, x), 2);
26 assertEq(test_rsh(x, 0), 1);
27 assertEq(test_rsh(0, x), 0);
28 assertEq(test_ursh(x, 0), 1);
29 assertEq(test_ursh(0, x), 0);
30 assertEq(test_lsh(x, 0), 1);
31 assertEq(test_lsh(0, x), 0);
32 assertEq(test_rsh(x, 0xffffffff), 0);
33 assertEq(test_rsh(0xffffffff, x), -1);
34 assertEq(test_ursh(x, 0xffffffff), 0);
35 assertEq(test_ursh(0xffffffff, x), 2147483647);
36 assertEq(test_lsh(x, 0xffffffff), -2147483648);
37 assertEq(test_lsh(0xffffffff, x), -2);
38 assertEq(test_rsh(x, "10.6"), 0);
39 assertEq(test_rsh("10.6", x), 5);
40 assertEq(test_ursh(x, "10.6"), 0);
41 assertEq(test_ursh("10.6", x), 5);
42 assertEq(test_lsh(x, "10.6"), 1024);
43 assertEq(test_lsh("10.6", x), 20);
44 assertEq(test_rsh(x, 2147483648), 1);
45 assertEq(test_rsh(2147483648, x), -1073741824);
46 assertEq(test_ursh(x, 2147483648), 1);
47 assertEq(test_ursh(2147483648, x), 1073741824);
48 assertEq(test_lsh(x, 2147483648), 1);
49 assertEq(test_lsh(2147483648, x), 0);
50 assertEq(test_rsh(x, 4294967296), 1);
51 assertEq(test_rsh(4294967296, x), 0);
52 assertEq(test_ursh(x, 4294967296), 1);
53 assertEq(test_ursh(4294967296, x), 0);
54 assertEq(test_lsh(x, 4294967296), 1);
55 assertEq(test_lsh(4294967296, x), 0);
56 assertEq(test_rsh(x, undefined), 1);
57 assertEq(test_rsh(undefined, x), 0);
58 assertEq(test_ursh(x, undefined), 1);
59 assertEq(test_ursh(undefined, x), 0);
60 assertEq(test_lsh(x, undefined), 1);
61 assertEq(test_lsh(undefined, x), 0);
62 assertEq(test_rsh(x, null), 1);
63 assertEq(test_rsh(null, x), 0);
64 assertEq(test_ursh(x, null), 1);
65 assertEq(test_ursh(null, x), 0);
66 assertEq(test_lsh(x, null), 1);
67 assertEq(test_lsh(null, x), 0);
68 assertEq(test_rsh(x, false), 1);
69 assertEq(test_rsh(false, x), 0);
70 assertEq(test_ursh(x, false), 1);
71 assertEq(test_ursh(false, x), 0);
72 assertEq(test_lsh(x, false), 1);
73 assertEq(test_lsh(false, x), 0);
74 assertEq(test_rsh(x, true), 0);
75 assertEq(test_rsh(true, x), 0);
76 assertEq(test_ursh(x, true), 0);
77 assertEq(test_ursh(true, x), 0);
78 assertEq(test_lsh(x, true), 2);
79 assertEq(test_lsh(true, x), 2);
80 assertEq(test_rsh(x, -1.5), 0);
81 assertEq(test_rsh(-1.5, x), -1);
82 assertEq(test_ursh(x, -1.5), 0);
83 assertEq(test_ursh(-1.5, x), 2147483647);
84 assertEq(test_lsh(x, -1.5), -2147483648);
85 assertEq(test_lsh(-1.5, x), -2);
86
87 var x = 0;
88 assertEq(test_rsh(x, -1), 0);
89 assertEq(test_rsh(-1, x), -1);
90 assertEq(test_ursh(x, -1), 0);
91 assertEq(test_ursh(-1, x), 4294967295);
92 assertEq(test_lsh(x, -1), 0);
93 assertEq(test_lsh(-1, x), -1);
94 assertEq(test_rsh(x, 1), 0);
95 assertEq(test_rsh(1, x), 1);
96 assertEq(test_ursh(x, 1), 0);
97 assertEq(test_ursh(1, x), 1);
98 assertEq(test_lsh(x, 1), 0);
99 assertEq(test_lsh(1, x), 1);
100 assertEq(test_rsh(x, 0), 0);
101 assertEq(test_rsh(0, x), 0);
102 assertEq(test_ursh(x, 0), 0);
103 assertEq(test_ursh(0, x), 0);
104 assertEq(test_lsh(x, 0), 0);
105 assertEq(test_lsh(0, x), 0);
106 assertEq(test_rsh(x, 0xffffffff), 0);
107 assertEq(test_rsh(0xffffffff, x), -1);
108 assertEq(test_ursh(x, 0xffffffff), 0);
109 assertEq(test_ursh(0xffffffff, x), 4294967295);
110 assertEq(test_lsh(x, 0xffffffff), 0);
111 assertEq(test_lsh(0xffffffff, x), -1);
112 assertEq(test_rsh(x, "10.6"), 0);
113 assertEq(test_rsh("10.6", x), 10);
114 assertEq(test_ursh(x, "10.6"), 0);
115 assertEq(test_ursh("10.6", x), 10);
116 assertEq(test_lsh(x, "10.6"), 0);
117 assertEq(test_lsh("10.6", x), 10);
118 assertEq(test_rsh(x, 2147483648), 0);
119 assertEq(test_rsh(2147483648, x), -2147483648);
120 assertEq(test_ursh(x, 2147483648), 0);
121 assertEq(test_ursh(2147483648, x), 2147483648);
122 assertEq(test_lsh(x, 2147483648), 0);
123 assertEq(test_lsh(2147483648, x), -2147483648);
124 assertEq(test_rsh(x, 4294967296), 0);
125 assertEq(test_rsh(4294967296, x), 0);
126 assertEq(test_ursh(x, 4294967296), 0);
127 assertEq(test_ursh(4294967296, x), 0);
128 assertEq(test_lsh(x, 4294967296), 0);
129 assertEq(test_lsh(4294967296, x), 0);
130 assertEq(test_rsh(x, undefined), 0);
131 assertEq(test_rsh(undefined, x), 0);
132 assertEq(test_ursh(x, undefined), 0);
133 assertEq(test_ursh(undefined, x), 0);
134 assertEq(test_lsh(x, undefined), 0);
135 assertEq(test_lsh(undefined, x), 0);
136 assertEq(test_rsh(x, null), 0);
137 assertEq(test_rsh(null, x), 0);
138 assertEq(test_ursh(x, null), 0);
139 assertEq(test_ursh(null, x), 0);
140 assertEq(test_lsh(x, null), 0);
141 assertEq(test_lsh(null, x), 0);
142 assertEq(test_rsh(x, false), 0);
143 assertEq(test_rsh(false, x), 0);
144 assertEq(test_ursh(x, false), 0);
145 assertEq(test_ursh(false, x), 0);
146 assertEq(test_lsh(x, false), 0);
147 assertEq(test_lsh(false, x), 0);
148 assertEq(test_rsh(x, true), 0);
149 assertEq(test_rsh(true, x), 1);
150 assertEq(test_ursh(x, true), 0);
151 assertEq(test_ursh(true, x), 1);
152 assertEq(test_lsh(x, true), 0);
153 assertEq(test_lsh(true, x), 1);
154 assertEq(test_rsh(x, -1.5), 0);
155 assertEq(test_rsh(-1.5, x), -1);
156 assertEq(test_ursh(x, -1.5), 0);
157 assertEq(test_ursh(-1.5, x), 4294967295);
158 assertEq(test_lsh(x, -1.5), 0);
159 assertEq(test_lsh(-1.5, x), -1);
160
161 var x = -1;
162 assertEq(test_rsh(x, -1), -1);
163 assertEq(test_rsh(-1, x), -1);
164 assertEq(test_ursh(x, -1), 1);
165 assertEq(test_ursh(-1, x), 1);
166 assertEq(test_lsh(x, -1), -2147483648);
167 assertEq(test_lsh(-1, x), -2147483648);
168 assertEq(test_rsh(x, 1), -1);
169 assertEq(test_rsh(1, x), 0);
170 assertEq(test_ursh(x, 1), 2147483647);
171 assertEq(test_ursh(1, x), 0);
172 assertEq(test_lsh(x, 1), -2);
173 assertEq(test_lsh(1, x), -2147483648);
174 assertEq(test_rsh(x, 0), -1);
175 assertEq(test_rsh(0, x), 0);
176 assertEq(test_ursh(x, 0), 4294967295);
177 assertEq(test_ursh(0, x), 0);
178 assertEq(test_lsh(x, 0), -1);
179 assertEq(test_lsh(0, x), 0);
180 assertEq(test_rsh(x, 0xffffffff), -1);
181 assertEq(test_rsh(0xffffffff, x), -1);
182 assertEq(test_ursh(x, 0xffffffff), 1);
183 assertEq(test_ursh(0xffffffff, x), 1);
184 assertEq(test_lsh(x, 0xffffffff), -2147483648);
185 assertEq(test_lsh(0xffffffff, x), -2147483648);
186 assertEq(test_rsh(x, "10.6"), -1);
187 assertEq(test_rsh("10.6", x), 0);
188 assertEq(test_ursh(x, "10.6"), 4194303);
189 assertEq(test_ursh("10.6", x), 0);
190 assertEq(test_lsh(x, "10.6"), -1024);
191 assertEq(test_lsh("10.6", x), 0);
192 assertEq(test_rsh(x, 2147483648), -1);
193 assertEq(test_rsh(2147483648, x), -1);
194 assertEq(test_ursh(x, 2147483648), 4294967295);
195 assertEq(test_ursh(2147483648, x), 1);
196 assertEq(test_lsh(x, 2147483648), -1);
197 assertEq(test_lsh(2147483648, x), 0);
198 assertEq(test_rsh(x, 4294967296), -1);
199 assertEq(test_rsh(4294967296, x), 0);
200 assertEq(test_ursh(x, 4294967296), 4294967295);
201 assertEq(test_ursh(4294967296, x), 0);
202 assertEq(test_lsh(x, 4294967296), -1);
203 assertEq(test_lsh(4294967296, x), 0);
204 assertEq(test_rsh(x, undefined), -1);
205 assertEq(test_rsh(undefined, x), 0);
206 assertEq(test_ursh(x, undefined), 4294967295);
207 assertEq(test_ursh(undefined, x), 0);
208 assertEq(test_lsh(x, undefined), -1);
209 assertEq(test_lsh(undefined, x), 0);
210 assertEq(test_rsh(x, null), -1);
211 assertEq(test_rsh(null, x), 0);
212 assertEq(test_ursh(x, null), 4294967295);
213 assertEq(test_ursh(null, x), 0);
214 assertEq(test_lsh(x, null), -1);
215 assertEq(test_lsh(null, x), 0);
216 assertEq(test_rsh(x, false), -1);
217 assertEq(test_rsh(false, x), 0);
218 assertEq(test_ursh(x, false), 4294967295);
219 assertEq(test_ursh(false, x), 0);
220 assertEq(test_lsh(x, false), -1);
221 assertEq(test_lsh(false, x), 0);
222 assertEq(test_rsh(x, true), -1);
223 assertEq(test_rsh(true, x), 0);
224 assertEq(test_ursh(x, true), 2147483647);
225 assertEq(test_ursh(true, x), 0);
226 assertEq(test_lsh(x, true), -2);
227 assertEq(test_lsh(true, x), -2147483648);
228 assertEq(test_rsh(x, -1.5), -1);
229 assertEq(test_rsh(-1.5, x), -1);
230 assertEq(test_ursh(x, -1.5), 1);
231 assertEq(test_ursh(-1.5, x), 1);
232 assertEq(test_lsh(x, -1.5), -2147483648);
233 assertEq(test_lsh(-1.5, x), -2147483648);
234
235
236
237 assertEq(test_ursh(0, -2147483648), 0);
238 assertEq(test_ursh(0, 2147483648), 0);
239 assertEq(test_ursh(0, 45), 0);
240 assertEq(test_ursh(0, -45), 0);
241 assertEq(test_ursh(100, -2147483648), 100);
242 assertEq(test_ursh(100, 2147483648), 100);
243 assertEq(test_ursh(100, 45), 0);
244 assertEq(test_ursh(100, -45), 0);
245 assertEq(test_ursh(-100, -2147483648), 4294967196);
246 assertEq(test_ursh(-100, 2147483648), 4294967196);
247 assertEq(test_ursh(-100, 45), 524287);
248 assertEq(test_ursh(-100, -45), 8191);
249
250
251
252 function test1() {
253 var i = 0;
254 return 2147483647 >>> i;
255 }
256 assertEq(test1(), 2147483647);
257 function test2() {
258 var i = 1;
259 return 2147483647 >>> i;
260 }
261 assertEq(test2(), 1073741823);
262 function test3() {
263 var i = 0;
264 return -1 >>> i;
265 }
266 assertEq(test3(), 4294967295);
267 function test4() {
268 var i = 3;
269 return -1 >>> i;
270 }
271 assertEq(test4(), 536870911);
272 function test5() {
273 var i = 0;
274 return -3648 >>> i;
275 }
276 assertEq(test5(), 4294963648);

mercurial