diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/20011029-2.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/20011029-2.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/20011029-2.c b/gcc/testsuite/gcc.dg/20011029-2.c new file mode 100644 index 00000000000..77a5b0776cd --- /dev/null +++ b/gcc/testsuite/gcc.dg/20011029-2.c @@ -0,0 +1,23 @@ +/* { dg-do compile { target i?86-*-* } } */ +/* { dg-options "-O2" } */ + +int foo (int s) +{ + for (;;) + { + int a[32]; + int y, z; + __asm__ __volatile__ ("" : "=c" (y), "=D" (z) + : "a" (0), "0" (32), "1" (a) : "memory"); + if (({ register char r; + __asm__ __volatile__ ("" : "=q" (r) + : "r" (s % 32), "m" (a[s / 32]) + : "cc"); r; })) + continue; + else if (({ register char r; + __asm__ __volatile__ ("" : "=q" (r) + : "r" (0), "m" (a) + : "cc"); r; })) + continue; + } +} |