(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
cssc_4.c
       1  /* { dg-do compile } */
       2  /* { dg-additional-options "--save-temps -O1" } */
       3  /* { dg-final { check-function-bodies "**" "" "" } } */
       4  
       5  #include <stdint.h>
       6  
       7  #pragma GCC target "+cssc"
       8  
       9  #define MIN(X, Y) ((X) > (Y) ? (Y) : (X))
      10  #define MAX(X, Y) ((X) > (Y) ? (X) : (Y))
      11  
      12  /*
      13  ** uminw:
      14  **      umin	w0, w[01], w[01]
      15  **      ret
      16  */
      17  
      18  uint32_t
      19  uminw (uint32_t a, uint32_t b)
      20  {
      21    return MIN (a, b);
      22  }
      23  
      24  /*
      25  ** uminx:
      26  **      umin	x0, x[01], x[01]
      27  **      ret
      28  */
      29  
      30  uint64_t
      31  uminx (uint64_t a, uint64_t b)
      32  {
      33    return MIN (a, b);
      34  }
      35  
      36  /*
      37  ** sminw:
      38  **      smin	w0, w[01], w[01]
      39  **      ret
      40  */
      41  
      42  int32_t
      43  sminw (int32_t a, int32_t b)
      44  {
      45    return MIN (a, b);
      46  }
      47  
      48  /*
      49  ** sminx:
      50  **      smin	x0, x[01], x[01]
      51  **      ret
      52  */
      53  
      54  int64_t
      55  sminx (int64_t a, int64_t b)
      56  {
      57    return MIN (a, b);
      58  }
      59  
      60  /*
      61  ** umaxw:
      62  **      umax	w0, w[01], w[01]
      63  **      ret
      64  */
      65  
      66  uint32_t
      67  umaxw (uint32_t a, uint32_t b)
      68  {
      69    return MAX (a, b);
      70  }
      71  
      72  /*
      73  ** umaxx:
      74  **      umax	x0, x[01], x[01]
      75  **      ret
      76  */
      77  
      78  uint64_t
      79  umaxx (uint64_t a, uint64_t b)
      80  {
      81    return MAX (a, b);
      82  }
      83  
      84  /*
      85  ** smaxw:
      86  **      smax	w0, w[01], w[01]
      87  **      ret
      88  */
      89  
      90  int32_t
      91  smaxw (int32_t a, int32_t b)
      92  {
      93    return MAX (a, b);
      94  }
      95  
      96  /*
      97  ** smaxx:
      98  **      smax	x0, x[01], x[01]
      99  **      ret
     100  */
     101  
     102  int64_t
     103  smaxx (int64_t a, int64_t b)
     104  {
     105    return MAX (a, b);
     106  }
     107