1 /* { dg-do compile { target cris-*-* crisv32-*-* } } */
2 /* { dg-skip-if "" { cris*-*-* } { "-march*" } { "" } } */
3 /* { dg-options "-O2 -march=v10" } */
4 /* { dg-final { scan-assembler "in-asm: .mof" } } */
5 /* { dg-final { scan-assembler "out-asm: .mof" } } */
6 /* { dg-final { scan-assembler "in2-asm: .mof" } } */
7 /* { dg-final { scan-assembler "out2-asm: .mof" } } */
8 
9 unsigned int
in(unsigned int i)10 in (unsigned int i)
11 {
12   register int i0 asm ("mof") = i;
13   asm ("in-asm: %0" : : "x" (i0));
14 }
15 
16 unsigned int
out(void)17 out (void)
18 {
19   register int o asm ("mof");
20   asm ("out-asm: %0" : "=x" (o));
21   return o;
22 }
23 
24 unsigned int
in2(unsigned int i)25 in2 (unsigned int i)
26 {
27   asm ("in2-asm: %0" : : "h" (i));
28 }
29 
30 unsigned int
out2(void)31 out2 (void)
32 {
33   unsigned int o;
34   asm ("out2-asm: %0" : "=h" (o));
35   return o;
36 }
37