merge from gcc
[external/binutils.git] / sim / testsuite / sim / v850 / bsh.cgs
1 # v850 bsh
2 # mach: v850e
3 # as(v850e): -mv850e
4
5         .include "testutils.inc"
6
7         seti    0x12345678, r1
8         bsh     r1, r2
9
10         flags   0
11         reg     r2, 0x34127856
12
13 # CY is 1 if one or more bytes in the result half-word is zero, else 0
14
15         seti    0x12345600, r1
16         bsh     r1, r2
17         flags   c
18         reg     r2, 0x34120056
19
20         seti    0x12340078, r1
21         bsh     r1, r2
22         flags   c
23         reg     r2, 0x34127800
24
25         seti    0x12005678, r1
26         bsh     r1, r2
27         flags   0
28         reg     r2, 0x00127856
29
30         seti    0x00345678, r1
31         bsh     r1, r2
32         flags   0
33         reg     r2, 0x34007856
34
35 # S is set if the result is negative
36
37         seti    0x00800000, r1
38         bsh     r1, r2
39         flags   s + c + z
40         reg     r2, 0x80000000
41
42 # Z is set if the result is zero
43 # According to NEC, the Z flag depends on only the lower half-word
44
45         seti    0x00000000, r1
46         bsh     r1, r2
47         flags   c + z
48         reg     r2, 0x00000000
49
50         seti    0xffff0000, r1
51         bsh     r1, r2
52         flags   c + s + z
53         reg     r2, 0xffff0000
54
55         pass