1  /* Test the valid @cc<cc> asm flag outputs.  */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O" } */
       4  /* { dg-skip-if "" { arm_thumb1 } } */
       5  
       6  #ifndef __GCC_ASM_FLAG_OUTPUTS__
       7  #error "missing preprocessor define"
       8  #endif
       9  
      10  void f(char *out)
      11  {
      12    asm(""
      13        : "=@ccne"(out[0]), "=@cceq"(out[1]),
      14  	"=@cccs"(out[2]), "=@cccc"(out[3]),
      15  	"=@ccmi"(out[4]), "=@ccpl"(out[5]),
      16  	"=@ccvs"(out[6]), "=@ccvc"(out[7]),
      17  	"=@cchi"(out[8]), "=@ccls"(out[9]),
      18  	"=@ccge"(out[10]), "=@cclt"(out[11]),
      19  	"=@ccgt"(out[12]), "=@ccle"(out[13]),
      20  	"=@cchs"(out[14]), "=@cclo"(out[15]));
      21  }
      22  
      23  /* There will be at least one of each.  */
      24  /* { dg-final { scan-assembler "movne" } } */
      25  /* { dg-final { scan-assembler "moveq" } } */
      26  /* { dg-final { scan-assembler "movcs" } } */
      27  /* { dg-final { scan-assembler "movcc" } } */
      28  /* { dg-final { scan-assembler "movmi" } } */
      29  /* { dg-final { scan-assembler "movpl" } } */
      30  /* { dg-final { scan-assembler "movvs" } } */
      31  /* { dg-final { scan-assembler "movvc" } } */
      32  /* { dg-final { scan-assembler "movhi" } } */
      33  /* { dg-final { scan-assembler "movls" } } */
      34  /* { dg-final { scan-assembler "movge" } } */
      35  /* { dg-final { scan-assembler "movls" } } */
      36  /* { dg-final { scan-assembler "movgt" } } */
      37  /* { dg-final { scan-assembler "movle" } } */