| /* { dg-do assemble } */ | |
| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -mno-sdata" } */ | |
| /* This example will fail to assemble if the last instruction is a | |
| branch with delay slot. */ | |
| int d; | |
| extern char * fn2 (void); | |
| void fn1(void) | |
| { | |
| char *a = fn2(); | |
| for (;;) { | |
| long long b; | |
| int e = 8; | |
| for (; e <= 63; e += 7) { | |
| long c = *a++; | |
| b += c & e; | |
| if (c & 28) | |
| break; | |
| } | |
| d = b; | |
| } | |
| } | |
| /* { dg-final { scan-assembler "bne.*\\.L2" } } */ | |
| /* { dg-final { scan-assembler-not "add.eq" } } */ |