blob: df8476462f91f5154969f0b13155cec6019f92b4 [file] [log] [blame]
/* PR tree-optimization/66299 */
/* { dg-do run } */
/* { dg-options "-fdump-tree-original" } */
/* { dg-require-effective-target int32plus } */
void
test1 (int x)
{
if ((0 << x) != 0
|| (1 << x) != 2
|| (2 << x) != 4
|| (3 << x) != 6
|| (4 << x) != 8
|| (5 << x) != 10
|| (6 << x) != 12
|| (7 << x) != 14
|| (8 << x) != 16
|| (9 << x) != 18
|| (10 << x) != 20)
__builtin_abort ();
}
void
test2 (int x)
{
if (!((0 << x) == 0
&& (1 << x) == 4
&& (2 << x) == 8
&& (3 << x) == 12
&& (4 << x) == 16
&& (5 << x) == 20
&& (6 << x) == 24
&& (7 << x) == 28
&& (8 << x) == 32
&& (9 << x) == 36
&& (10 << x) == 40))
__builtin_abort ();
}
void
test3 (unsigned int x)
{
if ((0U << x) != 0U
|| (1U << x) != 16U
|| (2U << x) != 32U
|| (3U << x) != 48U
|| (4U << x) != 64U
|| (5U << x) != 80U
|| (6U << x) != 96U
|| (7U << x) != 112U
|| (8U << x) != 128U
|| (9U << x) != 144U
|| (10U << x) != 160U)
__builtin_abort ();
}
void
test4 (unsigned int x)
{
if (!((0U << x) == 0U
|| (1U << x) == 8U
|| (2U << x) == 16U
|| (3U << x) == 24U
|| (4U << x) == 32U
|| (5U << x) == 40U
|| (6U << x) == 48U
|| (7U << x) == 56U
|| (8U << x) == 64U
|| (9U << x) == 72U
|| (10U << x) == 80U))
__builtin_abort ();
}
void
test5 (int x)
{
if ((0 << x) == 1
|| (0 << x) != 0
|| (0x8001U << x) != 0x20000U)
__builtin_abort ();
}
int
main (void)
{
test1 (1);
test2 (2);
test3 (4U);
test4 (3U);
test5 (17);
}
/* { dg-final { scan-tree-dump-not "<<" "original" } } */