(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
nios2/
cdx-branch.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-Os -march=r2 -mcdx" } */
       3  
       4  /* Check generation of R2 CDX br.n, beqz.n, bnez.n instructions.  */
       5  
       6  int f (int a, int b, int c)
       7  {
       8    if (a == 0)
       9      return b;
      10    else
      11      return c;
      12  }
      13  
      14  int g (int a, int b, int c)
      15  {
      16    if (a != 0)
      17      return b;
      18    else
      19      return c;
      20  }
      21  
      22  extern int i (int);
      23  extern int j (int);
      24  extern int k (int);
      25  
      26  int h (int a, int b)
      27  {
      28    int x;
      29  
      30    /* As well as the conditional branch for the "if", there has to be
      31       an unconditional branch from one branch of the "if" to
      32       the return statement.  We compile this testcase with -Os to
      33       avoid insertion of a duplicate epilogue in place of the branch.  */
      34    if (a == b)
      35      x = i (37);
      36    else
      37      x = j (42);
      38    return x + a + k (x);
      39  }
      40  
      41  /* { dg-final { scan-assembler "\tbeqz\\.n\t.*" } } */
      42  /* { dg-final { scan-assembler "\tbnez\\.n\t.*" } } */
      43  /* { dg-final { scan-assembler "\tbeq\t|\tbne\t" } } */
      44  /* { dg-final { scan-assembler "\tbr\\.n\t.*" } } */