(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
h8300/
sub.c
       1  /* { dg-do compile }  */
       2  /* { dg-options "-mh -mint32 -O2" }  */
       3  /* { dg-final { scan-assembler-not "cmp" } }  */
       4  
       5  typedef unsigned char uchar;
       6  typedef signed char schar;
       7  typedef unsigned short ushort;
       8  typedef unsigned long ulong;
       9  
      10  volatile void abort (void);
      11  
      12  
      13  #define SUB(T)\
      14  T subE##T (T x, T y) { T t = x - y ; if (t == 0) abort (); return t; } \
      15  T subNE##T (T x, T y) { T t = x - y ; if (t != 0) return t; abort (); } \
      16  T subGE##T (T x, T y) { T t = x - y ; if (t >= 0) abort (); return t; } \
      17  T subLT##T (T x, T y) { T t = x - y ; if (t < 0) abort (); return t; }
      18  
      19  #define SUBC(T,N)\
      20  T subEQ##N##T (T a) { T t = a - N; if (t == 0) abort (); return t; } \
      21  T subNE##N##T (T a) { T t = a - N; if (t != 0) return t; abort (); } \
      22  T subGE##N##T (T a) { T t = a - N; if (t >= 0) abort (); return t; } \
      23  T subLT##N##T (T a) { T t = a - N; if (t < 0) abort (); return t; }
      24  
      25  #define SUBNC(T,N)\
      26  T subEQN##N##T (T a) { T t = a - -N; if (t == 0) abort (); return t; } \
      27  T subNEN##N##T (T a) { T t = a - -N; if (t != 0) return t; abort (); } \
      28  T subGEN##N##T (T a) { T t = a - -N; if (t >= 0) abort (); return t; } \
      29  T subLTN##N##T (T a) { T t = a - -N; if (t < 0) abort (); return t; }
      30  
      31  
      32  SUB (schar)
      33  SUB (short)
      34  SUB (long)
      35  SUB (uchar)
      36  SUB (ushort)
      37  SUB (ulong)
      38  
      39  
      40  
      41  SUBC (schar,1)
      42  SUBC (schar,2)
      43  SUBC (schar,3)
      44  SUBC (schar,4)
      45  SUBC (schar,6)
      46  SUBC (schar,8)
      47  SUBNC (schar,1)
      48  SUBNC (schar,2)
      49  SUBNC (schar,3)
      50  SUBNC (schar,4)
      51  SUBNC (schar,6)
      52  SUBNC (schar,8)
      53  
      54  SUBC (uchar,1)
      55  SUBC (uchar,2)
      56  SUBC (uchar,3)
      57  SUBC (uchar,4)
      58  SUBC (uchar,6)
      59  SUBC (uchar,8)
      60  SUBNC (uchar,1)
      61  SUBNC (uchar,2)
      62  SUBNC (uchar,3)
      63  SUBNC (uchar,4)
      64  SUBNC (uchar,6)
      65  SUBNC (uchar,8)
      66  
      67  SUBC (short,1)
      68  SUBC (short,2)
      69  SUBC (short,3)
      70  SUBC (short,4)
      71  SUBC (short,6)
      72  SUBC (short,8)
      73  SUBNC (short,1)
      74  SUBNC (short,2)
      75  SUBNC (short,3)
      76  SUBNC (short,4)
      77  SUBNC (short,6)
      78  SUBNC (short,8)
      79  
      80  SUBC (ushort,1)
      81  SUBC (ushort,2)
      82  SUBC (ushort,3)
      83  SUBC (ushort,4)
      84  SUBC (ushort,6)
      85  SUBC (ushort,8)
      86  SUBNC (ushort,1)
      87  SUBNC (ushort,2)
      88  SUBNC (ushort,3)
      89  SUBNC (ushort,4)
      90  SUBNC (ushort,6)
      91  SUBNC (ushort,8)
      92  
      93  SUBC (long,1)
      94  SUBC (long,2)
      95  SUBC (long,3)
      96  SUBC (long,4)
      97  SUBC (long,6)
      98  SUBC (long,8)
      99  SUBNC (long,1)
     100  SUBNC (long,2)
     101  SUBNC (long,3)
     102  SUBNC (long,4)
     103  SUBNC (long,6)
     104  SUBNC (long,8)
     105  
     106  SUBC (ulong,1)
     107  SUBC (ulong,2)
     108  SUBC (ulong,3)
     109  SUBC (ulong,4)
     110  SUBC (ulong,6)
     111  SUBC (ulong,8)
     112  SUBNC (ulong,1)
     113  SUBNC (ulong,2)
     114  SUBNC (ulong,3)
     115  SUBNC (ulong,4)
     116  SUBNC (ulong,6)
     117  SUBNC (ulong,8)
     118