Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / lirasm / tests / cmov.in
1 i = immi -1
2 j = immi 0
3 k = immi 1
4
5 ; Test each comparison operator. In each case, the result is set to k (1) if it
6 ; did what it should do, or i (-1) if not.
7
8 c1 = eqi j k
9 r1 = cmovi c1 i k
10
11 c2 = lti j k
12 r2 = cmovi c2 k i
13
14 c3 = lei j k
15 r3 = cmovi c3 k i
16
17 c4 = gti j k
18 r4 = cmovi c4 i k
19
20 c5 = gei j k
21 r5 = cmovi c5 i k
22
23 c6 = ltui j k
24 r6 = cmovi c6 k i
25
26 c7 = leui j k
27 r7 = cmovi c7 k i
28
29 c8 = gtui j k
30 r8 = cmovi c8 i k
31
32 c9 = geui j k
33 r9 = cmovi c9 i k
34
35 ; A few weird cases: Perform unsigned tests on a signed quantity to ensure that
36 ; they do what they should. This is dependent on the platform using two's
37 ; complement arithmetic, but we don't support anything that doesn't do that.
38
39 c10 = ltui i k
40 r10 = cmovi c10 i k
41
42 c11 = leui i k
43 r11 = cmovi c11 i k
44
45 c12 = gtui i k
46 r12 = cmovi c12 k i
47
48 c13 = geui i k
49 r13 = cmovi c13 k i
50
51 ; Sum the results. They should all be 1 so an overall result of 13 is a pass.
52
53 r1_2 = addi r1 r2
54 r3_4 = addi r3 r4
55 r5_6 = addi r5 r6
56 r7_8 = addi r7 r8
57 r9_10 = addi r9 r10
58 r11_12 = addi r11 r12
59
60 r1_4 = addi r1_2 r3_4
61 r5_8 = addi r5_6 r7_8
62 r9_12 = addi r9_10 r11_12
63
64 r1_8 = addi r1_4 r5_8
65 r9_13 = addi r9_12 r13
66
67 res = addi r1_8 r9_13
68 reti res