branch-1.c   [plain text]


/* We should implement these "if" statements using an "andi" instruction
   followed by a branch on zero.  */
/* { dg-mips-options "-O2 -mno-mips16" } */
void bar (void);
void f1 (int x) { if (x & 4) bar (); }
void f2 (int x) { if ((x >> 2) & 1) bar (); }
void f3 (unsigned int x) { if (x & 0x10) bar (); }
void f4 (unsigned int x) { if ((x >> 4) & 1) bar (); }
/* { dg-final { scan-assembler "\tandi\t.*\tandi\t.*\tandi\t.*\tandi\t" } } */
/* { dg-final { scan-assembler-not "\tsrl\t" } } */
/* { dg-final { scan-assembler-not "\tsra\t" } } */