diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/20011029-2.c')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/20011029-2.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/20011029-2.c b/gcc/testsuite/gcc.target/i386/20011029-2.c new file mode 100644 index 000000000..c1068de6e --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/20011029-2.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { 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[0]) + : "cc"); r; })) + continue; + } + return 0; +} |