• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development Co., Ltd.
3 Licensed under the Apache License, Version 2.0 (the "License");
4 you may not use this file except in compliance with the License.
5 You may obtain a copy of the License at
6 *
7 http://www.apache.org/licenses/LICENSE-2.0
8 *
9 Unless required by applicable law or agreed to in writing, software
10 distributed under the License is distributed on an "AS IS" BASIS,
11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 See the License for the specific language governing permissions and
13 limitations under the License.
14 *
15 Copyright (c) 2024 Huawei Device Co., Ltd.
16 Licensed under the Apache License, Version 2.0 (the "License");
17 you may not use this file except in compliance with the License.
18 You may obtain a copy of the License at
19 *
20 http://www.apache.org/licenses/LICENSE-2.0
21 *
22 Unless required by applicable law or agreed to in writing, software
23 distributed under the License is distributed on an "AS IS" BASIS,
24 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25 See the License for the specific language governing permissions and
26 limitations under the License.
27 */
28
29function sccpFoldGreater()
30{
31    let a = 2;
32    let b = 1;
33    let intMaxVal = 2147483647;
34    print(a > b);
35    a = intMaxVal;
36    print(a > b);
37
38    a = true;
39    b = false;
40    print(a > b);
41
42    a = 2.1;
43    b = 2.2;
44    print(a > b);
45}
46
47function sccpFoldGreaterNoEffect()
48{
49    let a = 2;
50    let b = 1.1;
51    let intMaxVal = 2147483647;
52    print(a > b);
53    b = false;
54    print(a > b);
55
56    a = 1.1;
57    b = 1;
58    print(a > b);
59
60    b = true;
61    print(a > b);
62    b = intMaxVal;
63    print(a > b);
64
65    a = true;
66    print(a > b);
67    b = 1.1;
68    print(a > b);
69    b = 1;
70    print(a > b);
71}
72
73function sccpFoldGreaterEq()
74{
75    let a = 2;
76    let b = 1;
77    let intMaxVal = 2147483647;
78    print(a >= b);
79    a = intMaxVal;
80    print(a >= b);
81    a = 1;
82    print(a >= b);
83
84    a = true;
85    b = false;
86    print(a >= b);
87    b = true;
88    print(a >= b);
89
90    a = 2.1;
91    b = 2.2;
92    print(a >= b);
93    b = 2.1;
94    print(a >= b);
95}
96
97function sccpFoldGreaterEqNoEffect()
98{
99    let a = 2;
100    let b = 1.1;
101    let intMaxVal = 2147483647;
102    print(a >= b);
103    b = false;
104    print(a >= b);
105
106    a = 1.1;
107    b = 1;
108    print(a >= b);
109    b = true;
110    print(a >= b);
111    b = intMaxVal;
112    print(a >= b);
113
114    a = true;
115    print(a >= b);
116    b = 1.1;
117    print(a >= b);
118    b = 1;
119    print(a >= b);
120}
121
122function sccpFoldLess()
123{
124    let a = 2;
125    let b = 1;
126    let intMaxVal = 2147483647;
127    print(a < b);
128    a = intMaxVal;
129    print(a < b);
130
131    a = true;
132    b = false;
133    print(a < b);
134
135    a = 2.1;
136    b = 2.2;
137    print(a < b);
138}
139
140function sccpFoldLessNoEffect()
141{
142    let a = 2;
143    let b = 1.1;
144    let intMaxVal = 2147483647;
145    print(a < b);
146    b = false;
147    print(a < b);
148
149    a = 1.1;
150    b = 1;
151    print(a < b);
152    b = true;
153    print(a < b);
154    b = intMaxVal;
155    print(a < b);
156
157    a = true;
158    print(a < b);
159    b = 1.1;
160    print(a < b);
161    b = 1;
162    print(a < b);
163}
164
165function sccpFoldLessEq()
166{
167    let a = 2;
168    let b = 1;
169    let intMaxVal = 2147483647;
170    print(a <= b);
171    a = intMaxVal;
172    print(a <= b);
173    a = 1;
174    print(a <= b);
175
176    a = false;
177    b = true;
178    print(a <= b);
179    b = false;
180    print(a <= b);
181
182    a = 3.1;
183    b = 3.2;
184    print(a <= b);
185    b = 3.1;
186    print(a <= b);
187}
188
189function sccpFoldLessEqNoEffect()
190{
191    let a = 2;
192    let b = 1.1;
193    let intMaxVal = 2147483647;
194    print(a <= b);
195    b = false;
196    print(a <= b);
197
198    a = 1.1;
199    b = 1;
200    print(a <= b);
201    b = true;
202    print(a <= b);
203    b = intMaxVal;
204    print(a <= b);
205
206    a = true;
207    print(a <= b);
208    b = 1.1;
209    print(a <= b);
210    b = 1;
211    print(a < b);
212}
213
214function sccpFoldEq()
215{
216    let a = 1;
217    let b = 1;
218    let intMaxVal = 2147483647;
219    print(a == b);
220    print(a == intMaxVal);
221
222    a = true;
223    b = true;
224    print(a == b);
225
226    a = 3.2;
227    b = 3.3;
228    print(a == b);
229}
230
231function sccpFoldEqNoEffect()
232{
233    let a = 2;
234    let b = 1.1;
235    let intMaxVal = 2147483647;
236    print(a == b);
237    b = false;
238    print(a == b);
239
240    a = 1.1;
241    b = 1;
242    print(a == b);
243    b = true;
244    print(a == b);
245    b = intMaxVal;
246    print(a == b);
247
248    a = true;
249    print(a == b);
250    b = 1.1;
251    print(a == b);
252    b = 1;
253    print(a == b);
254}
255
256function sccpFoldStrictEq()
257{
258    let a = 1;
259    let b = 1;
260    let intMaxVal = 2147483647;
261    print(a === b);
262    print(a === intMaxVal);
263
264    a = true;
265    b = true;
266    print(a === b);
267
268    a = 3.2;
269    b = 3.3;
270    print(a === b);
271}
272
273function sccpFoldStrictEqNoEffect()
274{
275    let a = 2;
276    let b = 1.1;
277    let intMaxVal = 2147483647;
278    print(a === b);
279    b = false;
280    print(a === b);
281
282    a = 1.1;
283    b = 1;
284    print(a === b);
285    b = true;
286    print(a === b);
287    b = intMaxVal;
288    print(a === b);
289
290    a = true;
291    print(a === b);
292    b = 1.1;
293    print(a === b);
294    b = 1;
295    print(a === b);
296}
297
298function sccpFoldNotEq()
299{
300    let a = 1;
301    let b = 1;
302    let intMaxVal = 2147483647;
303    print(a != b);
304    print(a != intMaxVal);
305
306    a = true;
307    b = true;
308    print(a != b);
309
310    a = 3.2;
311    b = 3.3;
312    print(a != b);
313}
314
315function sccpFoldNotEqNoEffect()
316{
317    let a = 2;
318    let b = 1.1;
319    let intMaxVal = 2147483647;
320    print(a != b);
321    b = false;
322    print(a != b);
323
324    a = 1.1;
325    b = 1;
326    print(a != b);
327    b = true;
328    print(a != b);
329    b = intMaxVal;
330    print(a != b);
331
332    a = true;
333    print(a != b);
334    b = 1.1;
335    print(a != b);
336    b = 1;
337    print(a != b);
338}
339
340function sccpFoldStrictNotEq()
341{
342    let a = 1;
343    let b = 1;
344    let intMaxVal = 2147483647;
345    print(a !== b);
346    print(a !== intMaxVal);
347
348    a = true;
349    b = true;
350    print(a !== b);
351
352    a = 3.2;
353    b = 3.3;
354    print(a !== b);
355
356}
357
358function sccpFoldStrictNotEqNoEffect()
359{
360    let a = 2;
361    let b = 1.1;
362    let intMaxVal = 2147483647;
363    print(a !== b);
364    b = false;
365    print(a !== b);
366
367    a = 1.1;
368    b = 1;
369    print(a !== b);
370    b = true;
371    print(a !== b);
372    b = intMaxVal;
373    print(a !== b);
374
375    a = true;
376    print(a !== b);
377    b = 1.1;
378    print(a !== b);
379    b = 1;
380    print(a !== b);
381}
382
383function sccpNoEffectNanWithInt() {
384    let a = NaN;
385    let intVal = 1;
386    let intMaxVal = 2147483647;
387    let intMinVal = -2147483648;
388    print(a === intVal);
389    print(a != intVal);
390    print(a !== intVal);
391    print(a > intVal);
392    print(a >= intVal);
393    print(b >= intVal);
394    print(b > intVal);
395
396    // Check NAN with int min.
397    print(a === intMinVal);
398    print(a !== intMinVal);
399    print(a > intMinVal);
400    print(a >= intMinVal);
401    print(a < intMinVal);
402    print(a <= intMinVal);
403    print(a == intMinVal);
404    print(a != intMinVal);
405
406    // Check NAN with int maxVal.
407    print(a === intMaxVal);
408    print(a !== intMaxVal);
409    print(a > intMaxVal);
410    print(a >= intMaxVal);
411    print(a < intMaxVal);
412    print(a <= intMaxVal);
413    print(a == intMaxVal);
414    print(a != intMaxVal);
415}
416
417function sccpNoEffectNanWithBoolAndDouble() {
418    let a = NaN;
419    let doubleVal = 1.1;
420    let trueVal = true;
421    let falseVal = false;
422
423    // Check NAN with double val.
424    print(a === doubleVal);
425    print(a !== doubleVal);
426    print(a > doubleVal);
427    print(a >= doubleVal);
428    print(a < doubleVal);
429    print(a <= doubleVal);
430    print(a == doubleVal);
431    print(a != doubleVal);
432
433    // Check NAN with true.
434    print(a === trueVal);
435    print(a !== trueVal);
436    print(a > trueVal);
437    print(a >= trueVal);
438    print(a < trueVal);
439    print(a <= trueVal);
440    print(a == trueVal);
441    print(a != trueVal);
442
443    // Check NAN with false.
444    print(a === falseVal);
445    print(a !== falseVal);
446    print(a > falseVal);
447    print(a >= falseVal);
448    print(a < falseVal);
449    print(a <= falseVal);
450    print(a == falseVal);
451    print(a != falseVal);
452}
453
454function sccpNoEffectInfinityWithInt() {
455    let a = Infinity;
456    let intVal = 1;
457    let intMaxVal = 2147483647;
458    let intMinVal = -2147483648;
459
460    print(a === intVal);
461    print(a != intVal);
462    print(a !== intVal);
463    print(a > intVal);
464    print(a >= intVal);
465    print(b >= intVal);
466    print(b > intVal);
467
468    // Check Infinity with int min.
469    print(a === intMinVal);
470    print(a !== intMinVal);
471    print(a > intMinVal);
472    print(a >= intMinVal);
473    print(a < intMinVal);
474    print(a <= intMinVal);
475    print(a == intMinVal);
476    print(a != intMinVal);
477
478    // Check Infinity with int maxVal.
479    print(a === intMaxVal);
480    print(a !== intMaxVal);
481    print(a > intMaxVal);
482    print(a >= intMaxVal);
483    print(a < intMaxVal);
484    print(a <= intMaxVal);
485    print(a == intMaxVal);
486    print(a != intMaxVal);
487}
488
489function sccpNoEffectInfinityWithBoolAndDouble() {
490    let doubleVal = 1.1;
491    let trueVal = true;
492    let falseVal = false;
493
494    // Check Infinity with double val.
495    print(a === doubleVal);
496    print(a !== doubleVal);
497    print(a > doubleVal);
498    print(a >= doubleVal);
499    print(a < doubleVal);
500    print(a <= doubleVal);
501    print(a == doubleVal);
502    print(a != doubleVal);
503
504    // Check Infinity with true.
505    print(a === trueVal);
506    print(a !== trueVal);
507    print(a > trueVal);
508    print(a >= trueVal);
509    print(a < trueVal);
510    print(a <= trueVal);
511    print(a == trueVal);
512    print(a != trueVal);
513
514    // Check Infinity with false.
515    print(a === falseVal);
516    print(a !== falseVal);
517    print(a > falseVal);
518    print(a >= falseVal);
519    print(a < falseVal);
520    print(a <= falseVal);
521    print(a == falseVal);
522    print(a != falseVal);
523}
524
525function sccpNoEffectArithmetic() {
526    let a = 1;
527    let b = 2;
528    print(a * b);
529    print(a + b);
530    print(a - b);
531    print(a / b);
532    print(a >> b);
533    print(a << b);
534    print(a >>> b);
535
536    a = 1.2;
537    b = 2.2;
538    print(a * b);
539    print(a + b);
540    print(a - b);
541    print(a / b);
542    print(a >> b);
543    print(a << b);
544    print(a >>> b);
545}
546
547function sccpIfCheck() {
548    if (true) {
549        print(true);
550    }
551
552    if (false) {
553        print(false);
554    }
555    let a = 1;
556    let b = 2;
557    if (a < b) {
558        print(true);
559    }
560
561    if (a > b) {
562        print(true);
563    }
564}
565
566function sccpPhi(a) {
567    let b = a;
568    if (a) {
569        b = true;
570    } else {
571        b = true;
572    }
573    print(b);
574}
575
576function sccpPhi2()
577{
578    let a = 1;
579    if (true) {
580        a = 2;
581    } else {
582        a = 1;
583    }
584    print(a);
585}
586
587function sccpPhiNoEffect(a) {
588    let b = a;
589    if (a){
590        b = true;
591    } else {
592        b = false;
593    }
594    print(b);
595}