xref: /openbmc/qemu/tests/tcg/openrisc/test_extx.c (revision ba632924)
1 #include <stdio.h>
2 
3 int main(void)
4 {
5     int a, b;
6     int result;
7 
8     b = 0x83;
9     result = 0xffffff83;
10     __asm
11     ("l.extbs  %0, %1\n\t"
12      : "=r"(a)
13      : "r"(b)
14     );
15     if (a != result) {
16         printf("extbs error\n");
17         return -1;
18     }
19 
20     result = 0x83;
21     __asm
22     ("l.extbz  %0, %1\n\t"
23      : "=r"(a)
24      : "r"(b)
25     );
26     if (a != result) {
27         printf("extbz error\n");
28         return -1;
29     }
30 
31     b = 0x8083;
32     result = 0xffff8083;
33     __asm
34     ("l.exths  %0, %1\n\t"
35      : "=r"(a)
36      : "r"(b)
37     );
38     if (a != result) {
39         printf("exths error\n");
40         return -1;
41     }
42 
43     result = 0x8083;
44     __asm
45     ("l.exthz  %0, %1\n\t"
46      : "=r"(a)
47      : "r"(b)
48     );
49     if (a != result) {
50         printf("exthz error\n");
51         return -1;
52     }
53 
54     b = 0x11;
55     result = 0x11;
56     __asm
57     ("l.extws  %0, %1\n\t"
58      : "=r"(a)
59      : "r"(b)
60     );
61 
62     if (a != result) {
63         printf("extws error\n");
64         return -1;
65     }
66 
67     __asm
68     ("l.extwz  %0, %1\n\t"
69      : "=r"(a)
70      : "r"(b)
71     );
72     if (a != result) {
73         printf("extwz error\n");
74         return -1;
75     }
76 
77     return 0;
78 }
79