(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
vrp66.c
       1  /* PR tree-optimization/52267 */
       2  /* { dg-do run { target { ! int16 } } } */
       3  /* { dg-options "-O2" } */
       4  
       5  extern void abort (void);
       6  
       7  #define BITSM1 (sizeof (int) * __CHAR_BIT__ - 1)
       8  #define BITSH ((sizeof (int) - sizeof (short)) * __CHAR_BIT__)
       9  
      10  void
      11  f1 (unsigned int s)
      12  {
      13    if ((s & (7U << (BITSM1 - 2))) != 0)
      14      {
      15        if (s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
      16  	  || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
      17  	  || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
      18  	  || s == (0xf000U << BITSH) || s == (0x9000U << BITSH)
      19  	  || s == (0xc000U << BITSH) + 1 || s == -1U || s == -15U
      20  	  || s == -15550U || s == -15552U || s == (0x7000 << BITSH) - 1
      21  	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
      22  	  || s == 1U + __INT_MAX__ || s == -32U
      23  	  || s == (3 << (BITSM1 - 2)) + 2 || s == -5U || s == -63U
      24  	  || s == -64U || s == -65U || s == 6U + __INT_MAX__ || s == -8189U
      25  	  || s == -8191U || s == -8192U || s == -8193U || s == -8250U
      26  	  || s == -8255U || s == -8256U || s == -8257U || s == __INT_MAX__
      27  	  || s == __INT_MAX__ + 9U)
      28  	return;
      29      }
      30    else
      31      {
      32        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
      33  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f || s == 1
      34  	  || s == (1 << (BITSM1 - 2)) - 1 || s == 2 || s == 24 || s == 5)
      35  	return;
      36      }
      37    abort ();
      38  }
      39  
      40  void
      41  f2 (int s)
      42  {
      43    if ((s & (7U << (BITSM1 - 2))) == 0)
      44      {
      45        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
      46  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f || s == 1
      47  	  || s == (1 << (BITSM1 - 2)) - 1 || s == 2 || s == 24 || s == 5)
      48  	return;
      49      }
      50    else
      51      {
      52        if (s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
      53  	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
      54  	  || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
      55  	  || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
      56  	  || s == (-0x4000 << BITSH) + 1 || s == -1 || s == -15 || s == -15550
      57  	  || s == -15552 || s == (0x7000 << BITSH) - 1
      58  	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
      59  	  || s == -__INT_MAX__ - 1 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
      60  	  || s == -5 || s == -63 || s == -64 || s == -65
      61  	  || s == -__INT_MAX__ + 4 || s == -8189 || s == -8191 || s == -8192
      62  	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
      63  	  || s == -8257 || s == __INT_MAX__ || s == -__INT_MAX__ + 7)
      64  	return;
      65      }
      66    abort ();
      67  }
      68  
      69  void
      70  f3 (unsigned int s)
      71  {
      72    if ((s & 0x3cc0) == 0)
      73      {
      74        if (s == 0 || s == 0x20 || s == 0x3f || s == (0xbfbfU << BITSH)
      75  	  || s == (0xc000U << BITSH) || s == (0xf000U << BITSH)
      76  	  || s == (0x9000U << BITSH) || s == (0xc000U << BITSH) + 1 || s == 1
      77  	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
      78  	  || s == 1U + __INT_MAX__ || s == 2 || s == 24
      79  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == 6U + __INT_MAX__
      80  	  || s == __INT_MAX__ + 9U)
      81  	return;
      82      }
      83    else
      84      {
      85        if (s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
      86  	  || s == 0x3cbf || s == 0x3cc0 || s == (0xc000U << BITSH) - 1
      87  	  || s == (0xf000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
      88  	  || s == (0xa031U << BITSH) - 1 || s == -1U || s == -15U
      89  	  || s == -15550U || s == -15552U || s == (0x7000 << BITSH) - 1
      90  	  || s == (1 << (BITSM1 - 2)) - 1 || s == -32U || s == -5U
      91  	  || s == -63U || s == -64U || s == -65U || s == -8189U || s == -8191U
      92  	  || s == -8192U || s == -8193U || s == -8250U || s == -8255U
      93  	  || s == -8256U || s == -8257U || s == __INT_MAX__)
      94  	return;
      95      }
      96    abort ();
      97  }
      98  
      99  void
     100  f4 (int s)
     101  {
     102    if ((s & 0x3cc0) == 0)
     103      {
     104        if (s == 0 || s == 0x20 || s == 0x3f || s == (-0x4041 << BITSH)
     105  	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
     106  	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
     107  	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
     108  	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24
     109  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
     110  	  || s == -__INT_MAX__ + 7)
     111  	return;
     112      }
     113    else
     114      {
     115        if (s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     116  	  || s == 0x3cbf || s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
     117  	  || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
     118  	  || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15 || s == -15550
     119  	  || s == -15552 || s == (0x7000 << BITSH) - 1
     120  	  || s == (1 << (BITSM1 - 2)) - 1 || s == -32 || s == -5 || s == -63
     121  	  || s == -64 || s == -65 || s == -8189 || s == -8191 || s == -8192
     122  	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
     123  	  || s == -8257 || s == __INT_MAX__)
     124  	return;
     125      }
     126    abort ();
     127  }
     128  
     129  void
     130  f5 (int s)
     131  {
     132    if ((s & 0x3cc0U) == 0)
     133      {
     134        if (s == 0 || s == 0x20 || s == 0x3f || s == (-0x4041 << BITSH)
     135  	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
     136  	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
     137  	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
     138  	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24
     139  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
     140  	  || s == -__INT_MAX__ + 7)
     141  	return;
     142      }
     143    else
     144      {
     145        if (s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     146  	  || s == 0x3cbf || s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
     147  	  || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
     148  	  || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15 || s == -15550
     149  	  || s == -15552 || s == (0x7000 << BITSH) - 1
     150  	  || s == (1 << (BITSM1 - 2)) - 1 || s == -32 || s == -5 || s == -63
     151  	  || s == -64 || s == -65 || s == -8189 || s == -8191 || s == -8192
     152  	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
     153  	  || s == -8257 || s == __INT_MAX__)
     154  	return;
     155      }
     156    abort ();
     157  }
     158  
     159  void
     160  f6 (unsigned int s)
     161  {
     162    if ((s & 0x3cc0) == 0x3cc0)
     163      {
     164        if (s == 0x3cc0 || s == (0xc000U << BITSH) - 1
     165  	  || s == (0xf000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
     166  	  || s == (0xa031U << BITSH) - 1 || s == -1U || s == -15U
     167  	  || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
     168  	  || s == -32U || s == -5U || s == -63U || s == -64U
     169  	  || s == __INT_MAX__)
     170  	return;
     171      }
     172    else
     173      {
     174        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     175  	  || s == 0x20 || s == 0x3cbf || s == 0x3f || s == (0xbfbfU << BITSH)
     176  	  || s == (0xc000U << BITSH) || s == (0xf000U << BITSH)
     177  	  || s == (0x9000U << BITSH) || s == (0xc000U << BITSH) + 1 || s == 1
     178  	  || s == -15550U || s == -15552U || s == (0x7000 << BITSH)
     179  	  || s == (1 << (BITSM1 - 2)) || s == 1U + __INT_MAX__ || s == 2
     180  	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -65U
     181  	  || s == 6U + __INT_MAX__ || s == -8189U || s == -8191U
     182  	  || s == -8192U || s == -8193U || s == -8250U || s == -8255U
     183  	  || s == -8256U || s == -8257U || s == __INT_MAX__ + 9U)
     184  	return;
     185      }
     186    abort ();
     187  }
     188  
     189  void
     190  f7 (int s)
     191  {
     192    if ((s & 0x3cc0) == 0x3cc0)
     193      {
     194        if (s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
     195  	  || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
     196  	  || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15
     197  	  || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
     198  	  || s == -32 || s == -5 || s == -63 || s == -64 || s == __INT_MAX__)
     199  	return;
     200      }
     201    else
     202      {
     203        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     204  	  || s == 0x20 || s == 0x3cbf || s == 0x3f || s == (-0x4041 << BITSH)
     205  	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
     206  	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
     207  	  || s == -15550 || s == -15552 || s == (0x7000 << BITSH)
     208  	  || s == (1 << (BITSM1 - 2)) || s == -__INT_MAX__ - 1 || s == 2
     209  	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -65
     210  	  || s == -__INT_MAX__ + 4 || s == -8189 || s == -8191 || s == -8192
     211  	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
     212  	  || s == -8257 || s == -__INT_MAX__ + 7)
     213  	return;
     214      }
     215    abort ();
     216  }
     217  
     218  void
     219  f8 (int s)
     220  {
     221    if ((s & 0x3cc0U) == 0x3cc0)
     222      {
     223        if (s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
     224  	  || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
     225  	  || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15
     226  	  || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
     227  	  || s == -32 || s == -5 || s == -63 || s == -64 || s == __INT_MAX__)
     228  	return;
     229      }
     230    else
     231      {
     232        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     233  	  || s == 0x20 || s == 0x3cbf || s == 0x3f || s == (-0x4041 << BITSH)
     234  	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
     235  	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
     236  	  || s == -15550 || s == -15552 || s == (0x7000 << BITSH)
     237  	  || s == (1 << (BITSM1 - 2)) || s == -__INT_MAX__ - 1 || s == 2
     238  	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -65
     239  	  || s == -__INT_MAX__ + 4 || s == -8189 || s == -8191 || s == -8192
     240  	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
     241  	  || s == -8257 || s == -__INT_MAX__ + 7)
     242  	return;
     243      }
     244    abort ();
     245  }
     246  
     247  void
     248  f9 (unsigned int s)
     249  {
     250    if ((s & 0x3cc0) >= 0x1cc0)
     251      {
     252        if (s == 0x1cc0 || s == 0x1fff || s == 0x2000 || s == 0x3cbf
     253  	  || s == 0x3cc0 || s == (0xc000U << BITSH) - 1
     254  	  || s == (0xf000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
     255  	  || s == (0xa031U << BITSH) - 1 || s == -1U || s == -15U
     256  	  || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
     257  	  || s == -32U || s == -5U || s == -63U || s == -64U || s == -65U
     258  	  || s == -8189U || s == -8191U || s == -8192U || s == -8193U
     259  	  || s == -8250U || s == -8255U || s == -8256U || s == __INT_MAX__)
     260  	return;
     261      }
     262    else
     263      {
     264        if (s == 0 || s == 0x1cbf || s == 0x20 || s == 0x3f
     265  	  || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
     266  	  || s == (0xf000U << BITSH) || s == (0x9000U << BITSH)
     267  	  || s == (0xc000U << BITSH) + 1 || s == 1 || s == -15550U
     268  	  || s == -15552U || s == (0x7000 << BITSH)
     269  	  || s == (1 << (BITSM1 - 2)) || s == 1U + __INT_MAX__ || s == 2
     270  	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5
     271  	  || s == 6U + __INT_MAX__ || s == -8257U || s == __INT_MAX__ + 9U)
     272  	return;
     273      }
     274    abort ();
     275  }
     276  
     277  void
     278  f10 (unsigned int s)
     279  {
     280    if ((s & 0x3cc0) > 0x1cc0)
     281      {
     282        if (s == 0x2000 || s == 0x3cbf || s == 0x3cc0
     283  	  || s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
     284  	  || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
     285  	  || s == -1U || s == -15U || s == (0x7000 << BITSH) - 1
     286  	  || s == (1 << (BITSM1 - 2)) - 1 || s == -32U || s == -5U
     287  	  || s == -63U || s == -64U || s == -65U || s == -8189U || s == -8191U
     288  	  || s == -8192U || s == __INT_MAX__)
     289  	return;
     290      }
     291    else
     292      {
     293        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x20
     294  	  || s == 0x3f || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
     295  	  || s == (0xf000U << BITSH) || s == (0x9000U << BITSH)
     296  	  || s == (0xc000U << BITSH) + 1 || s == 1 || s == -15550U
     297  	  || s == -15552U || s == (0x7000 << BITSH)
     298  	  || s == (1 << (BITSM1 - 2)) || s == 1U + __INT_MAX__ || s == 2
     299  	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5
     300  	  || s == 6U + __INT_MAX__ || s == -8193U || s == -8250U
     301  	  || s == -8255U || s == -8256U || s == -8257U
     302  	  || s == __INT_MAX__ + 9U)
     303  	return;
     304      }
     305    abort ();
     306  }
     307  
     308  void
     309  f11 (int s)
     310  {
     311    if ((s & 0x3cc0) >= 0x1cc0)
     312      {
     313        if (s == 0x1cc0 || s == 0x1fff || s == 0x2000 || s == 0x3cbf
     314  	  || s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
     315  	  || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
     316  	  || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15
     317  	  || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
     318  	  || s == -32 || s == -5 || s == -63 || s == -64 || s == -65
     319  	  || s == -8189 || s == -8191 || s == -8192 || s == -8193
     320  	  || s == -8250 || s == -8255 || s == -8256 || s == __INT_MAX__)
     321  	return;
     322      }
     323    else
     324      {
     325        if (s == 0 || s == 0x1cbf || s == 0x20 || s == 0x3f
     326  	  || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
     327  	  || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
     328  	  || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -15550
     329  	  || s == -15552 || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
     330  	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24
     331  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
     332  	  || s == -8257 || s == -__INT_MAX__ + 7)
     333  	return;
     334      }
     335    abort ();
     336  }
     337  
     338  void
     339  f12 (int s)
     340  {
     341    if ((s & 0x3cc0) > 0x1cc0)
     342      {
     343        if (s == 0x2000 || s == 0x3cbf || s == 0x3cc0
     344  	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
     345  	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
     346  	  || s == -1 || s == -15 || s == (0x7000 << BITSH) - 1
     347  	  || s == (1 << (BITSM1 - 2)) - 1 || s == -32 || s == -5 || s == -63
     348  	  || s == -64 || s == -65 || s == -8189 || s == -8191 || s == -8192
     349  	  || s == __INT_MAX__)
     350  	return;
     351      }
     352    else
     353      {
     354        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x20
     355  	  || s == 0x3f || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
     356  	  || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
     357  	  || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -15550
     358  	  || s == -15552 || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
     359  	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24
     360  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
     361  	  || s == -8193 || s == -8250 || s == -8255 || s == -8256
     362  	  || s == -8257 || s == -__INT_MAX__ + 7)
     363  	return;
     364      }
     365    abort ();
     366  }
     367  
     368  void
     369  f13 (unsigned int s)
     370  {
     371    if ((s & (0xe071U << BITSH)) > (0xb030U << BITSH))
     372      {
     373        if (s == (0xf000U << BITSH) - 1 || s == (0xc000U << BITSH)
     374  	  || s == (0xf000U << BITSH) || s == (0xc000U << BITSH) + 1
     375  	  || s == -1U || s == -15U || s == -15550U || s == -15552U
     376  	  || s == -32U || s == -5U || s == -63U || s == -64U || s == -65U
     377  	  || s == -8189U || s == -8191U || s == -8192U || s == -8193U
     378  	  || s == -8250U || s == -8255U || s == -8256U || s == -8257U)
     379  	return;
     380      }
     381    else
     382      {
     383        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     384  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     385  	  || s == (0xc000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
     386  	  || s == (0xa031U << BITSH) - 1 || s == (0xbfbfU << BITSH)
     387  	  || s == (0x9000U << BITSH) || s == 1 || s == (0x7000 << BITSH) - 1
     388  	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
     389  	  || s == (1 << (BITSM1 - 2)) - 1 || s == 1U + __INT_MAX__ || s == 2
     390  	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5
     391  	  || s == 6U + __INT_MAX__ || s == __INT_MAX__
     392  	  || s == __INT_MAX__ + 9U)
     393  	return;
     394      }
     395    abort ();
     396  }
     397  
     398  void
     399  f14 (unsigned int s)
     400  {
     401    if ((s & (0xe071U << BITSH)) > (0xa030U << BITSH))
     402      {
     403        if (s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
     404  	  || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
     405  	  || s == (0xf000U << BITSH) || s == (0xc000U << BITSH) + 1
     406  	  || s == -1U || s == -15U || s == -15550U || s == -15552U
     407  	  || s == -32U || s == -5U || s == -63U || s == -64U || s == -65U
     408  	  || s == -8189U || s == -8191U || s == -8192U || s == -8193U
     409  	  || s == -8250U || s == -8255U || s == -8256U || s == -8257U)
     410  	return;
     411      }
     412    else
     413      {
     414        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     415  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     416  	  || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
     417  	  || s == (0x9000U << BITSH) || s == 1 || s == (0x7000 << BITSH) - 1
     418  	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
     419  	  || s == (1 << (BITSM1 - 2)) - 1 || s == 1U + __INT_MAX__ || s == 2
     420  	  || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5
     421  	  || s == 6U + __INT_MAX__ || s == __INT_MAX__
     422  	  || s == __INT_MAX__ + 9U)
     423  	return;
     424      }
     425    abort ();
     426  }
     427  
     428  void
     429  f15 (int s)
     430  {
     431    if ((s & ((-0x1f8f) << BITSH)) > ((-0x4fd0) << BITSH))
     432      {
     433        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     434  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     435  	  || s == (-0x1000 << BITSH) - 1 || s == (-0x4000 << BITSH)
     436  	  || s == (-0x1000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
     437  	  || s == -1 || s == -15 || s == -15550 || s == -15552
     438  	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
     439  	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
     440  	  || s == 2 || s == 24 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
     441  	  || s == 5 || s == -5 || s == -63 || s == -64 || s == -65
     442  	  || s == -8189 || s == -8191 || s == -8192 || s == -8193
     443  	  || s == -8250 || s == -8255 || s == -8256 || s == -8257
     444  	  || s == __INT_MAX__)
     445  	return;
     446      }
     447    else
     448      {
     449        if (s == (-0x4000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
     450  	  || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
     451  	  || s == (-0x7000 << BITSH) || s == -__INT_MAX__ - 1
     452  	  || s == -__INT_MAX__ + 4 || s == -__INT_MAX__ + 7)
     453  	return;
     454      }
     455    abort ();
     456  }
     457  
     458  void
     459  f16 (int s)
     460  {
     461    if ((s & ((-0x1f8f) << BITSH)) >= ((-0x4fd0) << BITSH))
     462      {
     463        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     464  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     465  	  || s == (-0x1000 << BITSH) - 1 || s == (-0x4000 << BITSH)
     466  	  || s == (-0x1000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
     467  	  || s == -1 || s == -15 || s == -15550 || s == -15552
     468  	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
     469  	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
     470  	  || s == 2 || s == 24 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
     471  	  || s == 5 || s == -5 || s == -63 || s == -64 || s == -65
     472  	  || s == -8189 || s == -8191 || s == -8192 || s == -8193
     473  	  || s == -8250 || s == -8255 || s == -8256 || s == -8257
     474  	  || s == __INT_MAX__)
     475  	return;
     476      }
     477    else
     478      {
     479        if (s == (-0x4000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
     480  	  || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
     481  	  || s == (-0x7000 << BITSH) || s == -__INT_MAX__ - 1
     482  	  || s == -__INT_MAX__ + 4 || s == -__INT_MAX__ + 7)
     483  	return;
     484      }
     485    abort ();
     486  }
     487  
     488  void
     489  f17 (int s)
     490  {
     491    if ((s & ((-0x4000 << BITSH) | 1)) != -__INT_MAX__ - 1)
     492      {
     493        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     494  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     495  	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
     496  	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
     497  	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
     498  	  || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -1 || s == -15
     499  	  || s == -15550 || s == -15552 || s == (0x7000 << BITSH) - 1
     500  	  || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
     501  	  || s == (1 << (BITSM1 - 2)) - 1 || s == 2 || s == 24 || s == -32
     502  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5 || s == -63
     503  	  || s == -64 || s == -65 || s == -__INT_MAX__ + 4 || s == -8189
     504  	  || s == -8191 || s == -8192 || s == -8193 || s == -8250
     505  	  || s == -8255 || s == -8256 || s == -8257 || s == __INT_MAX__)
     506  	return;
     507      }
     508    else
     509      {
     510        if (s == (-0x4041 << BITSH) || s == (-0x7000 << BITSH)
     511  	  || s == -__INT_MAX__ - 1 || s == -__INT_MAX__ + 7)
     512  	return;
     513      }
     514    abort ();
     515  }
     516  
     517  void
     518  f18 (int s)
     519  {
     520    if ((s & ((-0x4000 << BITSH) | 1)) != ((-0x4000 << BITSH) | 1))
     521      {
     522        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     523  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     524  	  || s == (-0x4000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
     525  	  || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
     526  	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
     527  	  || s == (-0x7000 << BITSH) || s == 1 || s == -15550 || s == -15552
     528  	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
     529  	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
     530  	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24 || s == -32
     531  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -64
     532  	  || s == -__INT_MAX__ + 4 || s == -8192 || s == -8250 || s == -8256
     533  	  || s == __INT_MAX__ || s == -__INT_MAX__ + 7)
     534  	return;
     535      }
     536    else
     537      {
     538        if (s == (-0x1000 << BITSH) - 1 || s == (-0x4000 << BITSH) + 1
     539  	  || s == -1 || s == -15 || s == -5 || s == -63 || s == -65
     540  	  || s == -8189 || s == -8191 || s == -8193 || s == -8255
     541  	  || s == -8257)
     542  	return;
     543      }
     544    abort ();
     545  }
     546  
     547  void
     548  f19 (int s)
     549  {
     550    if ((s & ((-0x4000 << BITSH) | 1)) != ((0x4000 << BITSH) | 1))
     551      {
     552        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     553  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     554  	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
     555  	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
     556  	  || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
     557  	  || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
     558  	  || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -1 || s == -15
     559  	  || s == -15550 || s == -15552 || s == (0x7000 << BITSH)
     560  	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
     561  	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24 || s == -32
     562  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5 || s == -63
     563  	  || s == -64 || s == -65 || s == -__INT_MAX__ + 4 || s == -8189
     564  	  || s == -8191 || s == -8192 || s == -8193 || s == -8250
     565  	  || s == -8255 || s == -8256 || s == -8257 || s == -__INT_MAX__ + 7)
     566  	return;
     567      }
     568    else
     569      {
     570        if (s == (0x7000 << BITSH) - 1 || s == __INT_MAX__)
     571  	return;
     572      }
     573    abort ();
     574  }
     575  
     576  void
     577  f20 (int s)
     578  {
     579    if ((s & (-0x1000 << BITSH)) != -__INT_MAX__ - 1)
     580      {
     581        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     582  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     583  	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
     584  	  || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
     585  	  || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
     586  	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
     587  	  || s == -1 || s == -15 || s == -15550 || s == -15552
     588  	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
     589  	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
     590  	  || s == 2 || s == 24 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
     591  	  || s == 5 || s == -5 || s == -63 || s == -64 || s == -65
     592  	  || s == -8189 || s == -8191 || s == -8192 || s == -8193
     593  	  || s == -8250 || s == -8255 || s == -8256 || s == -8257
     594  	  || s == __INT_MAX__)
     595  	return;
     596      }
     597    else
     598      {
     599        if (s == (-0x7000 << BITSH) - 1 || s == -__INT_MAX__ - 1
     600  	  || s == -__INT_MAX__ + 4 || s == -__INT_MAX__ + 7)
     601  	return;
     602      }
     603    abort ();
     604  }
     605  
     606  void
     607  f21 (int s)
     608  {
     609    if ((s & (-0x1000 << BITSH)) != (-0x1000 << BITSH))
     610      {
     611        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     612  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     613  	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
     614  	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
     615  	  || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
     616  	  || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
     617  	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
     618  	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
     619  	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24
     620  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
     621  	  || s == __INT_MAX__ || s == -__INT_MAX__ + 7)
     622  	return;
     623      }
     624    else
     625      {
     626        if (s == (-0x1000 << BITSH) || s == -1 || s == -15 || s == -15550
     627  	  || s == -15552 || s == -32 || s == -5 || s == -63 || s == -64
     628  	  || s == -65 || s == -8189 || s == -8191 || s == -8192 || s == -8193
     629  	  || s == -8250 || s == -8255 || s == -8256 || s == -8257)
     630  	return;
     631      }
     632    abort ();
     633  }
     634  
     635  void
     636  f22 (int s)
     637  {
     638    if ((s & (-0x1000 << BITSH)) != (0x7000 << BITSH))
     639      {
     640        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     641  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     642  	  || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
     643  	  || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
     644  	  || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
     645  	  || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
     646  	  || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -1 || s == -15
     647  	  || s == -15550 || s == -15552 || s == (0x7000 << BITSH) - 1
     648  	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
     649  	  || s == -__INT_MAX__ - 1 || s == 2 || s == 24 || s == -32
     650  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5 || s == -63
     651  	  || s == -64 || s == -65 || s == -__INT_MAX__ + 4 || s == -8189
     652  	  || s == -8191 || s == -8192 || s == -8193 || s == -8250
     653  	  || s == -8255 || s == -8256 || s == -8257 || s == -__INT_MAX__ + 7)
     654  	return;
     655      }
     656    else
     657      {
     658        if (s == (0x7000 << BITSH) || s == __INT_MAX__)
     659  	return;
     660      }
     661    abort ();
     662  }
     663  
     664  void
     665  f23 (unsigned int s)
     666  {
     667    if ((s & (0xf000U << BITSH)) != (0x7000 << BITSH))
     668      {
     669        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     670  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     671  	  || s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
     672  	  || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
     673  	  || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
     674  	  || s == (0xf000U << BITSH) || s == (0x9000U << BITSH)
     675  	  || s == (0xc000U << BITSH) + 1 || s == 1 || s == -1U || s == -15U
     676  	  || s == -15550U || s == -15552U || s == (0x7000 << BITSH) - 1
     677  	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
     678  	  || s == 1U + __INT_MAX__ || s == 2 || s == 24 || s == -32U
     679  	  || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5U || s == -63U
     680  	  || s == -64U || s == -65U || s == 6U + __INT_MAX__ || s == -8189U
     681  	  || s == -8191U || s == -8192U || s == -8193U || s == -8250U
     682  	  || s == -8255U || s == -8256U || s == -8257U
     683  	  || s == __INT_MAX__ + 9U)
     684  	return;
     685      }
     686    else
     687      {
     688        if (s == (0x7000 << BITSH) || s == __INT_MAX__)
     689  	return;
     690      }
     691    abort ();
     692  }
     693  
     694  void
     695  f24 (unsigned int s)
     696  {
     697    if ((s & (0xf000U << BITSH)) != (0x8000U << BITSH))
     698      {
     699        if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
     700  	  || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
     701  	  || s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
     702  	  || s == (0xa031U << BITSH) - 1 || s == (0xbfbfU << BITSH)
     703  	  || s == (0xc000U << BITSH) || s == (0xf000U << BITSH)
     704  	  || s == (0x9000U << BITSH) || s == (0xc000U << BITSH) + 1 || s == 1
     705  	  || s == -1U || s == -15U || s == -15550U || s == -15552U
     706  	  || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
     707  	  || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
     708  	  || s == 2 || s == 24 || s == -32U || s == (3 << (BITSM1 - 2)) + 2
     709  	  || s == 5 || s == -5U || s == -63U || s == -64U || s == -65U
     710  	  || s == -8189U || s == -8191U || s == -8192U || s == -8193U
     711  	  || s == -8250U || s == -8255U || s == -8256U || s == -8257U
     712  	  || s == __INT_MAX__)
     713  	return;
     714      }
     715    else
     716      {
     717        if (s == (0x9000U << BITSH) - 1 || s == 1U + __INT_MAX__
     718  	  || s == 6U + __INT_MAX__ || s == __INT_MAX__ + 9U)
     719  	return;
     720      }
     721    abort ();
     722  }
     723  
     724  int svals[] = {
     725    0,
     726    0x1cbf,
     727    0x1cc0,
     728    0x1fff,
     729    0x2000,
     730    0x20,
     731    0x3cbf,
     732    0x3cc0,
     733    0x3f,
     734    (-0x4000 << BITSH) - 1,
     735    (-0x1000 << BITSH) - 1,
     736    (-0x7000 << BITSH) - 1,
     737    (-0x5fcf << BITSH) - 1,
     738    (-0x4041 << BITSH),
     739    (-0x4000 << BITSH),
     740    (-0x1000 << BITSH),
     741    (-0x7000 << BITSH),
     742    (-0x4000 << BITSH) + 1,
     743    1,
     744    -1,
     745    -15,
     746    -15550,
     747    -15552,
     748    (0x7000 << BITSH) - 1,
     749    (0x7000 << BITSH),
     750    (1 << (BITSM1 - 2)),
     751    (1 << (BITSM1 - 2)) - 1,
     752    -__INT_MAX__ - 1,
     753    2,
     754    24,
     755    -32,
     756    (3 << (BITSM1 - 2)) + 2,
     757    5,
     758    -5,
     759    -63,
     760    -64,
     761    -65,
     762    -__INT_MAX__ + 4,
     763    -8189,
     764    -8191,
     765    -8192,
     766    -8193,
     767    -8250,
     768    -8255,
     769    -8256,
     770    -8257,
     771    __INT_MAX__,
     772    -__INT_MAX__ + 7,
     773  };
     774  
     775  unsigned int uvals[] = {
     776    0,
     777    0x1cbf,
     778    0x1cc0,
     779    0x1fff,
     780    0x2000,
     781    0x20,
     782    0x3cbf,
     783    0x3cc0,
     784    0x3f,
     785    (0xc000U << BITSH) - 1,
     786    (0xf000U << BITSH) - 1,
     787    (0x9000U << BITSH) - 1,
     788    (0xa031U << BITSH) - 1,
     789    (0xbfbfU << BITSH),
     790    (0xc000U << BITSH),
     791    (0xf000U << BITSH),
     792    (0x9000U << BITSH),
     793    (0xc000U << BITSH) + 1,
     794    1,
     795    -1U,
     796    -15U,
     797    -15550U,
     798    -15552U,
     799    (0x7000 << BITSH) - 1,
     800    (0x7000 << BITSH),
     801    (1 << (BITSM1 - 2)),
     802    (1 << (BITSM1 - 2)) - 1,
     803    1U + __INT_MAX__,
     804    2,
     805    24,
     806    -32U,
     807    (3 << (BITSM1 - 2)) + 2,
     808    5,
     809    -5U,
     810    -63U,
     811    -64U,
     812    -65U,
     813    6U + __INT_MAX__,
     814    -8189U,
     815    -8191U,
     816    -8192U,
     817    -8193U,
     818    -8250U,
     819    -8255U,
     820    -8256U,
     821    -8257U,
     822    __INT_MAX__,
     823    __INT_MAX__ + 9U,
     824  };
     825  
     826  int
     827  main ()
     828  {
     829    int i;
     830    for (i = 0; i < sizeof (svals) / sizeof (svals[0]); i++)
     831      {
     832        f2 (svals[i]);
     833        f4 (svals[i]);
     834        f5 (svals[i]);
     835        f7 (svals[i]);
     836        f8 (svals[i]);
     837        f11 (svals[i]);
     838        f12 (svals[i]);
     839        f15 (svals[i]);
     840        f16 (svals[i]);
     841        f17 (svals[i]);
     842        f18 (svals[i]);
     843        f19 (svals[i]);
     844        f20 (svals[i]);
     845        f21 (svals[i]);
     846        f22 (svals[i]);
     847      }
     848    for (i = 0; i < sizeof (uvals) / sizeof (uvals[0]); i++)
     849      {
     850        f1 (uvals[i]);
     851        f3 (uvals[i]);
     852        f6 (uvals[i]);
     853        f9 (uvals[i]);
     854        f10 (uvals[i]);
     855        f13 (uvals[i]);
     856        f14 (uvals[i]);
     857        f23 (uvals[i]);
     858        f24 (uvals[i]);
     859      }
     860    return 0;
     861  }