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

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:894bea52140a
1 load(libdir + 'array-compare.js');
2
3 function compareIAndSet(v) {
4 var res = 0;
5 var c;
6 var i = 0;
7 c = (v > 1);
8 res |= (c << i);
9 i++;
10 c = (v >= 2);
11 res |= (c << i);
12 i++;
13 c = (v < 3);
14 res |= (c << i);
15 i++;
16 c = (v <= 4);
17 res |= (c << i);
18 i++;
19 c = (v == 5);
20 res |= (c << i);
21 i++;
22 c = (v != 6);
23 res |= (c << i);
24 i++;
25 c = (v === 7);
26 res |= (c << i);
27 i++;
28 c = (v !== 8);
29 res |= (c << i);
30 i++;
31 return res;
32 }
33
34 function compareIAndBranch(v) {
35 var res = 0;
36 var c = 1;
37 var i = 0;
38 if (v > 1)
39 res |= (c << i);
40 i++;
41 if (v >= 2)
42 res |= (c << i);
43 i++;
44 if (v < 3)
45 res |= (c << i);
46 i++;
47 if (v <= 4)
48 res |= (c << i);
49 i++;
50 if (v == 5)
51 res |= (c << i);
52 i++;
53 if (v != 6)
54 res |= (c << i);
55 i++;
56 if (v === 7)
57 res |= (c << i);
58 i++;
59 if (v !== 8)
60 res |= (c << i);
61 i++;
62 if (v)
63 res |= (c << i);
64 i++;
65 return res;
66 }
67
68 function compareDAndSet(v) {
69 var res = 0;
70 var c;
71 var i = 0;
72 c = (v > 1.5);
73 res |= (c << i);
74 i++;
75 c = (v >= 2.5);
76 res |= (c << i);
77 i++;
78 c = (v < 3.5);
79 res |= (c << i);
80 i++;
81 c = (v <= 4.5);
82 res |= (c << i);
83 i++;
84 c = (v == 5.5);
85 res |= (c << i);
86 i++;
87 c = (v != 6.5);
88 res |= (c << i);
89 i++;
90 c = (v === 7.5);
91 res |= (c << i);
92 i++;
93 c = (v !== 8.5);
94 res |= (c << i);
95 i++;
96 c = (v !== 0.0);
97 res |= (c << i);
98 i++;
99 return res;
100 }
101
102 function compareDAndBranch(v) {
103 var res = 0;
104 var c = 1;
105 var i = 0;
106 if (v > 1.5)
107 res |= (c << i);
108 i++;
109 if (v >= 2.5)
110 res |= (c << i);
111 i++;
112 if (v < 3.5)
113 res |= (c << i);
114 i++;
115 if (v <= 4.5)
116 res |= (c << i);
117 i++;
118 if (v == 5.5)
119 res |= (c << i);
120 i++;
121 if (v != 6.5)
122 res |= (c << i);
123 i++;
124 if (v === 7.5)
125 res |= (c << i);
126 i++;
127 if (v !== 8.5)
128 res |= (c << i);
129 i++;
130 if (v)
131 res |= (c << i);
132 i++;
133 return res;
134 }
135
136 function compareSAndSet(v) {
137 var res = 0;
138 var c;
139 var i = 0;
140 c = (v > "a");
141 res |= (c << i);
142 i++;
143 c = (v >= "b");
144 res |= (c << i);
145 i++;
146 c = (v < "c");
147 res |= (c << i);
148 i++;
149 c = (v <= "d");
150 res |= (c << i);
151 i++;
152 c = (v == "e");
153 res |= (c << i);
154 i++;
155 c = (v != "f");
156 res |= (c << i);
157 i++;
158 c = (v === "g");
159 res |= (c << i);
160 i++;
161 c = (v !== "h");
162 res |= (c << i);
163 i++;
164 return res;
165 }
166
167 function compareSAndBranch(v) {
168 var res = 0;
169 var c = 1;
170 var i = 0;
171 if (v > "a")
172 res |= (c << i);
173 i++;
174 if (v >= "b")
175 res |= (c << i);
176 i++;
177 if (v < "c")
178 res |= (c << i);
179 i++;
180 if (v <= "d")
181 res |= (c << i);
182 i++;
183 if (v == "e")
184 res |= (c << i);
185 i++;
186 if (v != "f")
187 res |= (c << i);
188 i++;
189 if (v === "g")
190 res |= (c << i);
191 i++;
192 if (v !== "h")
193 res |= (c << i);
194 i++;
195 if (v)
196 res |= (c << i);
197 i++;
198 return res;
199 }
200
201 var expected = [
202 // compareIAndSet
203 172, 175, 171, 171, 179, 131, 227, 35,
204 // compareIAndBranch
205 428, 431, 427, 427, 435, 387, 483, 291,
206 // compareDAndSet
207 428, 428, 431, 427, 427, 435, 387, 483, 291, 416,
208 // compareDAndBranch
209 428, 428, 431, 427, 427, 435, 387, 483, 291, 160, 172,
210 // compareSAndSet
211 172, 175, 171, 171, 179, 131, 227, 35, 172,
212 // compareSAndBranch
213 428, 431, 427, 427, 435, 387, 483, 291, 172
214 ];
215
216 var result = [
217 compareIAndSet(1),
218 compareIAndSet(2),
219 compareIAndSet(3),
220 compareIAndSet(4),
221 compareIAndSet(5),
222 compareIAndSet(6),
223 compareIAndSet(7),
224 compareIAndSet(8),
225
226 compareIAndBranch(1),
227 compareIAndBranch(2),
228 compareIAndBranch(3),
229 compareIAndBranch(4),
230 compareIAndBranch(5),
231 compareIAndBranch(6),
232 compareIAndBranch(7),
233 compareIAndBranch(8),
234
235 compareDAndSet(0.5),
236 compareDAndSet(1.5),
237 compareDAndSet(2.5),
238 compareDAndSet(3.5),
239 compareDAndSet(4.5),
240 compareDAndSet(5.5),
241 compareDAndSet(6.5),
242 compareDAndSet(7.5),
243 compareDAndSet(8.5),
244 compareDAndSet(NaN),
245
246 compareDAndBranch(0.5),
247 compareDAndBranch(1.5),
248 compareDAndBranch(2.5),
249 compareDAndBranch(3.5),
250 compareDAndBranch(4.5),
251 compareDAndBranch(5.5),
252 compareDAndBranch(6.5),
253 compareDAndBranch(7.5),
254 compareDAndBranch(8.5),
255 compareDAndBranch(NaN),
256 compareDAndBranch(0.0),
257
258 compareSAndSet("a"),
259 compareSAndSet("b"),
260 compareSAndSet("c"),
261 compareSAndSet("d"),
262 compareSAndSet("e"),
263 compareSAndSet("f"),
264 compareSAndSet("g"),
265 compareSAndSet("h"),
266 compareSAndSet(""),
267
268 compareSAndBranch("a"),
269 compareSAndBranch("b"),
270 compareSAndBranch("c"),
271 compareSAndBranch("d"),
272 compareSAndBranch("e"),
273 compareSAndBranch("f"),
274 compareSAndBranch("g"),
275 compareSAndBranch("h"),
276 compareSAndBranch("")
277 ];
278
279 assertEq(arraysEqual(result, expected), true);

mercurial