(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
if-compare_1.c
       1  /* { dg-do run } */
       2  /* { dg-additional-options "-O -save-temps" } */
       3  /* { dg-final { check-function-bodies "**" "" "" { target { le } } } } */
       4  
       5  extern void abort ();
       6  
       7  /*
       8  **zoo1:
       9  **	cmp	w0, w1
      10  **	csel	w0, w2, w3, lt
      11  **	and	w0, w0, 1
      12  **	ret
      13  */
      14  __attribute((noipa, noinline))
      15  int zoo1 (int a, int b, int c, int d)
      16  {
      17     return ((a < b) & c) | ((a >= b) & d);
      18  }
      19  
      20  /*
      21  **zoo2:
      22  **	cmp	w0, w1
      23  **	csel	w0, w2, w3, lt
      24  **	ret
      25  */
      26  __attribute((noipa, noinline))
      27  int zoo2 (int a, int b, int c, int d)
      28  {
      29     return (-(a < b) & c) | (-(a >= b) & d);
      30  }
      31  
      32  int main ()
      33  {
      34    if (zoo1 (-3, 3, 5, 8) != 1)
      35      abort ();
      36  
      37    if (zoo1 (3, -3, 5, 8) != 0)
      38      abort ();
      39  
      40    if (zoo2 (-3, 3, 5, 8) != 5)
      41      abort ();
      42  
      43    if (zoo2 (3, -3, 5, 8) != 8)
      44      abort ();
      45  
      46    return 0;
      47  }