blob: 9116847de53e9f61008f4353ebfb4e986d8420b1 [file] [log] [blame]
/* PR tree-optimization/51721 */
/* { dg-do link } */
/* { dg-options "-O2" } */
extern void link_error (void);
#define BITSM1 (sizeof (int) * __CHAR_BIT__ - 1)
void
f1 (unsigned int s)
{
if (s >> 1 == 0)
{
if (s == 2 || s == -1U)
link_error ();
}
else
{
if (s == 0 || s == 1)
link_error ();
}
}
void
f2 (unsigned int s)
{
if (s >> 4 != 3)
{
if (s == 48 || s == 57 || s == 63)
link_error ();
}
else
{
if (s == 47 || s == 64 || s == 0 || s == -1U)
link_error ();
}
}
void
f3 (int s)
{
if (s >> 3 == -2)
{
if (s == -17 || s == -8 || s == 0
|| s == -__INT_MAX__ - 1 || s == __INT_MAX__)
link_error ();
}
else
{
if (s == -16 || s == -12 || s == -9)
link_error ();
}
}
void
f4 (unsigned int s)
{
if (s >> 2 < 4)
{
if (s == 16 || s == 20 || s == -1U)
link_error ();
}
else
{
if (s == 0 || s == 2 || s == 14 || s == 15)
link_error ();
}
}
void
f5 (unsigned int s)
{
if (s >> 3 <= 7)
{
if (s == 64 || s == 68 || s == -1U)
link_error ();
}
else
{
if (s == 0 || s == 1 || s == 62 || s == 63)
link_error ();
}
}
void
f6 (unsigned int s)
{
if (s >> 1 > 2)
{
if (s == 0 || s == 3 || s == 5)
link_error ();
}
else
{
if (s == 6 || s == 8 || s == -1U)
link_error ();
}
}
void
f7 (unsigned int s)
{
if (s >> 5 >= 7)
{
if (s == 0 || s == 2 || s == 221 || s == 223)
link_error ();
}
else
{
if (s == 224 || s == 256 || s == 258 || s == -1U)
link_error ();
}
}
void
f8 (int s)
{
if (s >> 2 < -3)
{
if (s == -12 || s == -10 || s == 0 || s == __INT_MAX__)
link_error ();
}
else
{
if (s == -13 || s == -16 || s == -__INT_MAX__ - 1)
link_error ();
}
}
void
f9 (int s)
{
if (s >> 3 <= -2)
{
if (s == -8 || s == -6 || s == 0 || s == __INT_MAX__)
link_error ();
}
else
{
if (s == -9 || s == -11 || s == -__INT_MAX__ - 1)
link_error ();
}
}
void
f10 (int s)
{
if (s >> 1 > -4)
{
if (s == -7 || s == -9 || s == -__INT_MAX__ - 1)
link_error ();
}
else
{
if (s == -6 || s == -4 || s == 0 || s == __INT_MAX__)
link_error ();
}
}
void
f11 (int s)
{
if (s >> 3 >= -6)
{
if (s == -49 || s == -51 || s == -__INT_MAX__ - 1)
link_error ();
}
else
{
if (s == -48 || s == -46 || s == 0 || s == __INT_MAX__)
link_error ();
}
}
void
f12 (int s)
{
if (s >> 2 < 4)
{
if (s == 16 || s == 20 || s == __INT_MAX__)
link_error ();
}
else
{
if (s == 0 || s == 2 || s == 14 || s == 15
|| s == -2 || s == -__INT_MAX__ - 1)
link_error ();
}
}
void
f13 (int s)
{
if (s >> 3 <= 7)
{
if (s == 64 || s == 68 || s == __INT_MAX__)
link_error ();
}
else
{
if (s == 0 || s == 1 || s == 62 || s == 63
|| s == -2 || s == -__INT_MAX__ - 1)
link_error ();
}
}
void
f14 (int s)
{
if (s >> 1 > 2)
{
if (s == 0 || s == 3 || s == 5
|| s == -2 || s == -__INT_MAX__ - 1)
link_error ();
}
else
{
if (s == 6 || s == 8 || s == __INT_MAX__)
link_error ();
}
}
void
f15 (int s)
{
if (s >> 5 >= 7)
{
if (s == 0 || s == 2 || s == 221 || s == 223
|| s == -2 || s == -__INT_MAX__ - 1)
link_error ();
}
else
{
if (s == 224 || s == 256 || s == 258 || s == __INT_MAX__)
link_error ();
}
}
unsigned int
f16 (unsigned int s)
{
unsigned int t = s >> BITSM1;
if (t != 0)
{
if (s == 0 || s == 5 || s == __INT_MAX__)
link_error ();
}
else
{
if (s == 1U + __INT_MAX__ || s == 6U + __INT_MAX__ || s == -1U)
link_error ();
}
return t;
}
int
f17 (int s)
{
int t = s >> BITSM1;
if (t == 0)
{
if (s == -1 || s == -5 || s == -__INT_MAX__ - 1)
link_error ();
}
else
{
if (s == 0 || s == 5 || s == __INT_MAX__)
link_error ();
}
return t;
}
unsigned int
f18 (unsigned int s)
{
unsigned int t = s >> BITSM1;
if (t >= 1)
{
if (s == 0 || s == 5 || s == __INT_MAX__)
link_error ();
}
else
{
if (s == 1U + __INT_MAX__ || s == 6U + __INT_MAX__ || s == -1U)
link_error ();
}
return t;
}
int
f19 (int s)
{
int t = s >> BITSM1;
if (t >= 0)
{
if (s == -1 || s == -5 || s == -__INT_MAX__ - 1)
link_error ();
}
else
{
if (s == 0 || s == 5 || s == __INT_MAX__)
link_error ();
}
return t;
}
unsigned int
f20 (unsigned int s)
{
unsigned int t = s >> BITSM1;
if (t < 1)
{
if (s == 1U + __INT_MAX__ || s == 6U + __INT_MAX__ || s == -1U)
link_error ();
}
else
{
if (s == 0 || s == 5 || s == __INT_MAX__)
link_error ();
}
return t;
}
int
f21 (int s)
{
int t = s >> BITSM1;
if (t < 0)
{
if (s == 0 || s == 5 || s == __INT_MAX__)
link_error ();
}
else
{
if (s == -1 || s == -5 || s == -__INT_MAX__ - 1)
link_error ();
}
return t;
}
int
main ()
{
return 0;
}