1 /* { dg-do assemble } */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -mno-sdata" } *
4
5 /* This example will fail to assemble if the last instruction is a
6 branch with delay slot. */
7 int d;
8 extern char * fn2 (void);
9
10 void fn1(void)
11 {
12 char *a = fn2();
13 for (;;) {
14 long long b;
15 int e = 8;
16 for (; e <= 63; e += 7) {
17 long c = *a++;
18 b += c & e;
19 if (c & 28)
20 break;
21 }
22 d = b;
23 }
24 }
25
26 /* { dg-final { scan-assembler "bne.*@.L2" } } */
27 /* { dg-final { scan-assembler-not "add.eq" } } */