/* Test some of the valid @cc<cc> asm flag outputs.  */
/* { dg-do compile } */
/* { dg-options "-O" } */
/* { dg-skip-if "" { arm_thumb1 } } */

#define DO(C) \
void f##C(void) { char x; asm("" : "=@cc"#C(x)); if (!x) asm(""); asm(""); }

DO(ne)
DO(eq)
DO(cs)
DO(cc)
DO(hs)
DO(lo)
DO(mi)
DO(pl)
DO(vs)
DO(vc)
DO(hi)
DO(ls)
DO(ge)
DO(lt)
DO(gt)
DO(le)

/* { dg-final { scan-assembler "bne" } } */
/* { dg-final { scan-assembler "beq" } } */
/* { dg-final { scan-assembler "bcs" } } */
/* { dg-final { scan-assembler "bcc" } } */
/* { dg-final { scan-assembler "bmi" } } */
/* { dg-final { scan-assembler "bpl" } } */
/* { dg-final { scan-assembler "bvs" } } */
/* { dg-final { scan-assembler "bvc" } } */
/* { dg-final { scan-assembler "bhi" } } */
/* { dg-final { scan-assembler "bls" } } */
/* { dg-final { scan-assembler "bge" } } */
/* { dg-final { scan-assembler "blt" } } */
/* { dg-final { scan-assembler "bgt" } } */
/* { dg-final { scan-assembler "ble" } } */
