/* { 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" } } */ |