daily update
[external/binutils.git] / sim / testsuite / sim / frv / mcplhi.cgs
1 # frv testcase for mcplhi $FRi,$s6,$FRk
2 # mach: fr400 fr550
3
4         .include "testutils.inc"
5
6         start
7
8         .global mcplhi
9 mcplhi:
10         set_fr_iimmed   0xdead,0xbeef,fr8
11         set_fr_iimmed   0xbeef,0xdead,fr9
12         set_fr_iimmed   0x1234,0x5678,fr10
13         mcplhi          fr8,0x0,fr10    ; Shift by 0
14         test_fr_iimmed  0xdead5678,fr10
15
16         set_fr_iimmed   0x1234,0x5678,fr10
17         mcplhi          fr8,0x1,fr10    ; Shift by 1
18         test_fr_iimmed  0xbd5b5678,fr10
19
20         set_fr_iimmed   0x1234,0x5678,fr10
21         mcplhi          fr8,0x4,fr10    ; Shift by 4
22         test_fr_iimmed  0xeadf5678,fr10
23
24         set_fr_iimmed   0x1234,0x5678,fr10
25         mcplhi          fr8,0xc,fr10    ; Shift by 12
26         test_fr_iimmed  0xdeef5678,fr10
27
28         set_fr_iimmed   0x1234,0x5678,fr10
29         mcplhi          fr8,0xf,fr10    ; Shift by 15
30         test_fr_iimmed  0xbeef5678,fr10
31
32         ; test again with truncated shift values
33         set_fr_iimmed   0x1234,0x5678,fr10
34         mcplhi          fr8,0x10,fr10   ; Shift by 0
35         test_fr_iimmed  0xdead5678,fr10
36
37         set_fr_iimmed   0x1234,0x5678,fr10
38         mcplhi          fr8,0x21,fr10   ; Shift by 1
39         test_fr_iimmed  0xbd5b5678,fr10
40
41         set_fr_iimmed   0x1234,0x5678,fr10
42         mcplhi          fr8,0x34,fr10   ; Shift by 4
43         test_fr_iimmed  0xeadf5678,fr10
44
45         set_fr_iimmed   0x1234,0x5678,fr10
46         mcplhi          fr8,0x1c,fr10   ; Shift by 12
47         test_fr_iimmed  0xdeef5678,fr10
48
49         set_fr_iimmed   0x1234,0x5678,fr10
50         mcplhi          fr8,0x2f,fr10   ; Shift by 15
51         test_fr_iimmed  0xbeef5678,fr10
52
53         pass