aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp66-int16-sw.c
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
committerBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
commit1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch)
treec607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp66-int16-sw.c
parent283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff)
downloadtoolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp66-int16-sw.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp66-int16-sw.c914
1 files changed, 914 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp66-int16-sw.c b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp66-int16-sw.c
new file mode 100644
index 000000000..b194d2370
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp66-int16-sw.c
@@ -0,0 +1,914 @@
+/* PR tree-optimization/52267 */
+/* { dg-do run { target { int16 } } } */
+/* { dg-options "-O2" } */
+
+extern void abort (void);
+
+#define BITSM1 (sizeof (int) * __CHAR_BIT__ - 1)
+#define BITSH ((sizeof (int) - sizeof (short)) * __CHAR_BIT__)
+
+void
+f1 (unsigned int s)
+{
+ if ((s & (7U << (BITSM1 - 2))) != 0)
+ {
+ if (s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
+ || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
+ || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
+ || s == (0xf000U << BITSH) || s == (0x9000U << BITSH)
+ || s == (0xc000U << BITSH) + 1 || s == -1U || s == -15U
+ || s == 0x3cbf || s == 0x3cc0
+ || s == -15550U || s == -15552U || s == (0x7000 << BITSH) - 1
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == 1U + __INT_MAX__ || s == -32U
+ || s == (3 << (BITSM1 - 2)) + 2 || s == -5U || s == -63U
+ || s == -64U || s == -65U || s == 6U + __INT_MAX__ || s == -8189U
+ || s == -8191U || s == -8192U || s == -8193U || s == -8250U
+ || s == -8255U || s == -8256U || s == -8257U || s == __INT_MAX__
+ || s == __INT_MAX__ + 9U)
+ return;
+ }
+ else
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3f || s == 1
+ || s == (1 << (BITSM1 - 2)) - 1 || s == 2 || s == 24 || s == 5)
+ return;
+ }
+ abort ();
+}
+
+void
+f2 (int s)
+{
+ if ((s & (7U << (BITSM1 - 2))) == 0)
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3f || s == 1
+ || s == (1 << (BITSM1 - 2)) - 1 || s == 2 || s == 24 || s == 5)
+ return;
+ }
+ else
+ {
+ if (s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
+ || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
+ || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
+ || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
+ || s == (-0x4000 << BITSH) + 1 || s == -1 || s == -15 || s == -15550
+ || s == 0x3cbf || s == 0x3cc0
+ || s == -15552 || s == (0x7000 << BITSH) - 1
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == -__INT_MAX__ - 1 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
+ || s == -5 || s == -63 || s == -64 || s == -65
+ || s == -__INT_MAX__ + 4 || s == -8189 || s == -8191 || s == -8192
+ || s == -8193 || s == -8250 || s == -8255 || s == -8256
+ || s == -8257 || s == __INT_MAX__ || s == -__INT_MAX__ + 7)
+ return;
+ }
+ abort ();
+}
+
+void
+f3 (unsigned int s)
+{
+ if ((s & 0x3cc0) == 0)
+ {
+ if (s == 0 || s == 0x20 || s == 0x3f
+ || s == (0xc000U << BITSH)
+ || s == (0xc000U << BITSH) + 1 || s == 1
+ || s == 1U + __INT_MAX__ || s == 2 || s == 24
+ || s == 5 || s == 6U + __INT_MAX__
+ || s == __INT_MAX__ + 9U)
+ return;
+ }
+ else
+ {
+ if (s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == (0xbfbfU << BITSH) || s == (0xf000U << BITSH)
+ || s == (0x9000U << BITSH)
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == (3 << (BITSM1 - 2)) + 2
+ || s == 0x3cbf || s == 0x3cc0 || s == (0xc000U << BITSH) - 1
+ || s == (0xf000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
+ || s == (0xa031U << BITSH) - 1 || s == -1U || s == -15U
+ || s == -15550U || s == -15552U || s == (0x7000 << BITSH) - 1
+ || s == (1 << (BITSM1 - 2)) - 1 || s == -32U || s == -5U
+ || s == -63U || s == -64U || s == -65U || s == -8189U || s == -8191U
+ || s == -8192U || s == -8193U || s == -8250U || s == -8255U
+ || s == -8256U || s == -8257U || s == __INT_MAX__)
+ return;
+ }
+ abort ();
+}
+
+void
+f4 (int s)
+{
+ if ((s & 0x3cc0) == 0)
+ {
+ if (s == 0 || s == 0x20 || s == 0x3f
+ || s == (-0x4000 << BITSH)
+ || s == (-0x4000 << BITSH) + 1 || s == 1
+ || s == -__INT_MAX__ - 1 || s == 2 || s == 24
+ || s == 5 || s == -__INT_MAX__ + 4
+ || s == -__INT_MAX__ + 7)
+ return;
+ }
+ else
+ {
+ if (s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == (-0x4041 << BITSH) || s == (-0x1000 << BITSH)
+ || s == (-0x7000 << BITSH)
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == (3 << (BITSM1 - 2)) + 2
+ || s == 0x3cbf || s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
+ || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
+ || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15 || s == -15550
+ || s == -15552 || s == (0x7000 << BITSH) - 1
+ || s == (1 << (BITSM1 - 2)) - 1 || s == -32 || s == -5 || s == -63
+ || s == -64 || s == -65 || s == -8189 || s == -8191 || s == -8192
+ || s == -8193 || s == -8250 || s == -8255 || s == -8256
+ || s == -8257 || s == __INT_MAX__)
+ return;
+ }
+ abort ();
+}
+
+void
+f5 (int s)
+{
+ if ((s & 0x3cc0U) == 0)
+ {
+ if (s == 0 || s == 0x20 || s == 0x3f
+ || s == (-0x4000 << BITSH)
+ || s == (-0x4000 << BITSH) + 1 || s == 1
+ || s == -__INT_MAX__ - 1 || s == 2 || s == 24
+ || s == 5 || s == -__INT_MAX__ + 4
+ || s == -__INT_MAX__ + 7)
+ return;
+ }
+ else
+ {
+ if (s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == (-0x4041 << BITSH) || s == (-0x1000 << BITSH)
+ || s == (-0x7000 << BITSH)
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == (3 << (BITSM1 - 2)) + 2
+ || s == 0x3cbf || s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
+ || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
+ || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15 || s == -15550
+ || s == -15552 || s == (0x7000 << BITSH) - 1
+ || s == (1 << (BITSM1 - 2)) - 1 || s == -32 || s == -5 || s == -63
+ || s == -64 || s == -65 || s == -8189 || s == -8191 || s == -8192
+ || s == -8193 || s == -8250 || s == -8255 || s == -8256
+ || s == -8257 || s == __INT_MAX__)
+ return;
+ }
+ abort ();
+}
+
+void
+f6 (unsigned int s)
+{
+ if ((s & 0x3cc0) == 0x3cc0)
+ {
+ if (s == 0x3cc0 || s == (0xc000U << BITSH) - 1
+ || s == -1U || s == -15U
+ || s == (1 << (BITSM1 - 2)) - 1
+ || s == -32U || s == -5U || s == -63U || s == -64U
+ || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == (0xf000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
+ || s == (0xa031U << BITSH) - 1
+ || s == (0x7000 << BITSH) - 1
+ || s == 0x20 || s == 0x3cbf || s == 0x3f || s == (0xbfbfU << BITSH)
+ || s == (0xc000U << BITSH) || s == (0xf000U << BITSH)
+ || s == (0x9000U << BITSH) || s == (0xc000U << BITSH) + 1 || s == 1
+ || s == -15550U || s == -15552U || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == 1U + __INT_MAX__ || s == 2
+ || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -65U
+ || s == 6U + __INT_MAX__ || s == -8189U || s == -8191U
+ || s == -8192U || s == -8193U || s == -8250U || s == -8255U
+ || s == -8256U || s == -8257U || s == __INT_MAX__ + 9U)
+ return;
+ }
+ abort ();
+}
+
+void
+f7 (int s)
+{
+ if ((s & 0x3cc0) == 0x3cc0)
+ {
+ if (s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
+ || s == -1 || s == -15
+ || s == (1 << (BITSM1 - 2)) - 1
+ || s == -32 || s == -5 || s == -63 || s == -64 || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
+ || s == (-0x5fcf << BITSH) - 1
+ || s == (0x7000 << BITSH) - 1
+ || s == 0x20 || s == 0x3cbf || s == 0x3f || s == (-0x4041 << BITSH)
+ || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
+ || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
+ || s == -15550 || s == -15552 || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == -__INT_MAX__ - 1 || s == 2
+ || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -65
+ || s == -__INT_MAX__ + 4 || s == -8189 || s == -8191 || s == -8192
+ || s == -8193 || s == -8250 || s == -8255 || s == -8256
+ || s == -8257 || s == -__INT_MAX__ + 7)
+ return;
+ }
+ abort ();
+}
+
+void
+f8 (int s)
+{
+ if ((s & 0x3cc0U) == 0x3cc0)
+ {
+ if (s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
+ || s == -1 || s == -15
+ || s == (1 << (BITSM1 - 2)) - 1
+ || s == -32 || s == -5 || s == -63 || s == -64 || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == (-0x1000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
+ || s == (-0x5fcf << BITSH) - 1
+ || s == (0x7000 << BITSH) - 1
+ || s == 0x20 || s == 0x3cbf || s == 0x3f || s == (-0x4041 << BITSH)
+ || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
+ || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
+ || s == -15550 || s == -15552 || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == -__INT_MAX__ - 1 || s == 2
+ || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -65
+ || s == -__INT_MAX__ + 4 || s == -8189 || s == -8191 || s == -8192
+ || s == -8193 || s == -8250 || s == -8255 || s == -8256
+ || s == -8257 || s == -__INT_MAX__ + 7)
+ return;
+ }
+ abort ();
+}
+
+void
+f9 (unsigned int s)
+{
+ if ((s & 0x3cc0) >= 0x1cc0)
+ {
+ if (s == 0x1cc0 || s == 0x1fff || s == 0x2000 || s == 0x3cbf
+ || s == 0x3cc0 || s == (0xc000U << BITSH) - 1
+ || s == (0xf000U << BITSH) - 1
+ || s == (0xbfbfU << BITSH) || s == (0xf000U << BITSH)
+ || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == (3 << (BITSM1 - 2)) + 2
+ || s == (0xa031U << BITSH) - 1 || s == -1U || s == -15U
+ || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
+ || s == -32U || s == -5U || s == -63U || s == -64U || s == -65U
+ || s == -8189U || s == -8191U || s == -8192U || s == -8193U
+ || s == -8250U || s == -8255U || s == -8256U || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x20 || s == 0x3f
+ || s == (0x9000U << BITSH) - 1 || s == (0xc000U << BITSH)
+ || s == (0x9000U << BITSH)
+ || s == (0xc000U << BITSH) + 1 || s == 1 || s == -15550U
+ || s == -15552U
+ || s == 1U + __INT_MAX__ || s == 2
+ || s == 24 || s == 5
+ || s == 6U + __INT_MAX__ || s == -8257U || s == __INT_MAX__ + 9U)
+ return;
+ }
+ abort ();
+}
+
+void
+f10 (unsigned int s)
+{
+ if ((s & 0x3cc0) > 0x1cc0)
+ {
+ if (s == 0x2000 || s == 0x3cbf || s == 0x3cc0
+ || s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
+ || s == (0xbfbfU << BITSH) || s == (0xa031U << BITSH) - 1
+ || s == (0xf000U << BITSH)
+ || s == -1U || s == -15U || s == (0x7000 << BITSH) - 1
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == -32U || s == (3 << (BITSM1 - 2)) + 2 || s == -5U
+ || s == -63U || s == -64U || s == -65U || s == -8189U || s == -8191U
+ || s == -8192U || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x20
+ || s == 0x3f || s == (0x9000U << BITSH) - 1
+ || s == (0xc000U << BITSH) || s == (0x9000U << BITSH)
+ || s == (0xc000U << BITSH) + 1 || s == 1 || s == -15550U
+ || s == -15552U || s == (1 << (BITSM1 - 2)) - 1
+ || s == 1U + __INT_MAX__ || s == 2
+ || s == 24 || s == 5
+ || s == 6U + __INT_MAX__ || s == -8193U || s == -8250U
+ || s == -8255U || s == -8256U || s == -8257U
+ || s == __INT_MAX__ + 9U)
+ return;
+ }
+ abort ();
+}
+
+void
+f11 (int s)
+{
+ if ((s & 0x3cc0) >= 0x1cc0)
+ {
+ if (s == 0x1cc0 || s == 0x1fff || s == 0x2000 || s == 0x3cbf
+ || s == 0x3cc0 || s == (-0x4000 << BITSH) - 1
+ || s == (-0x1000 << BITSH) - 1
+ || s == (-0x4041 << BITSH)
+ || s == (-0x1000 << BITSH)
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == (3 << (BITSM1 - 2)) + 2
+ || s == (-0x5fcf << BITSH) - 1 || s == -1 || s == -15
+ || s == (0x7000 << BITSH) - 1 || s == (1 << (BITSM1 - 2)) - 1
+ || s == -32 || s == -5 || s == -63 || s == -64 || s == -65
+ || s == -8189 || s == -8191 || s == -8192 || s == -8193
+ || s == -8250 || s == -8255 || s == -8256 || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x20 || s == 0x3f
+ || s == (-0x7000 << BITSH) - 1 || s == (-0x4000 << BITSH)
+ || s == (-0x7000 << BITSH)
+ || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -15550
+ || s == -15552
+ || s == -__INT_MAX__ - 1 || s == 2 || s == 24
+ || s == 5 || s == -__INT_MAX__ + 4
+ || s == -8257 || s == -__INT_MAX__ + 7)
+ return;
+ }
+ abort ();
+}
+
+void
+f12 (int s)
+{
+ if ((s & 0x3cc0) > 0x1cc0)
+ {
+ if (s == 0x2000 || s == 0x3cbf || s == 0x3cc0
+ || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
+ || s == (-0x5fcf << BITSH) - 1
+ || s == (-0x4041 << BITSH)
+ || s == (-0x1000 << BITSH)
+ || s == -1 || s == -15 || s == (0x7000 << BITSH) - 1
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == (3 << (BITSM1 - 2)) + 2
+ || s == -32 || s == -5 || s == -63
+ || s == -64 || s == -65 || s == -8189 || s == -8191 || s == -8192
+ || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x20
+ || s == 0x3f || s == (-0x7000 << BITSH) - 1
+ || s == (-0x4000 << BITSH) || s == (-0x7000 << BITSH)
+ || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -15550
+ || s == -15552 || s == (1 << (BITSM1 - 2)) - 1
+ || s == -__INT_MAX__ - 1 || s == 2 || s == 24
+ || s == 5 || s == -__INT_MAX__ + 4
+ || s == -8193 || s == -8250 || s == -8255 || s == -8256
+ || s == -8257 || s == -__INT_MAX__ + 7)
+ return;
+ }
+ abort ();
+}
+
+void
+f13 (unsigned int s)
+{
+ if ((s & (0xe071U << BITSH)) > (0xb030U << BITSH))
+ {
+ if (s == (0xf000U << BITSH) - 1 || s == (0xc000U << BITSH)
+ || s == (0xf000U << BITSH) || s == (0xc000U << BITSH) + 1
+ || s == -1U || s == -15U || s == -15550U || s == -15552U
+ || s == -32U || s == -5U || s == -63U || s == -64U || s == -65U
+ || s == -8189U || s == -8191U || s == -8192U || s == -8193U
+ || s == -8250U || s == -8255U || s == -8256U || s == -8257U)
+ return;
+ }
+ else
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (0xc000U << BITSH) - 1 || s == (0x9000U << BITSH) - 1
+ || s == (0xa031U << BITSH) - 1 || s == (0xbfbfU << BITSH)
+ || s == (0x9000U << BITSH) || s == 1 || s == (0x7000 << BITSH) - 1
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == (1 << (BITSM1 - 2)) - 1 || s == 1U + __INT_MAX__ || s == 2
+ || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5
+ || s == 6U + __INT_MAX__ || s == __INT_MAX__
+ || s == __INT_MAX__ + 9U)
+ return;
+ }
+ abort ();
+}
+
+void
+f14 (unsigned int s)
+{
+ if ((s & (0xe071U << BITSH)) > (0xa030U << BITSH))
+ {
+ if (s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
+ || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
+ || s == (0xf000U << BITSH) || s == (0xc000U << BITSH) + 1
+ || s == -1U || s == -15U || s == -15550U || s == -15552U
+ || s == -32U || s == -5U || s == -63U || s == -64U || s == -65U
+ || s == -8189U || s == -8191U || s == -8192U || s == -8193U
+ || s == -8250U || s == -8255U || s == -8256U || s == -8257U)
+ return;
+ }
+ else
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
+ || s == (0x9000U << BITSH) || s == 1 || s == (0x7000 << BITSH) - 1
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == (1 << (BITSM1 - 2)) - 1 || s == 1U + __INT_MAX__ || s == 2
+ || s == 24 || s == (3 << (BITSM1 - 2)) + 2 || s == 5
+ || s == 6U + __INT_MAX__ || s == __INT_MAX__
+ || s == __INT_MAX__ + 9U)
+ return;
+ }
+ abort ();
+}
+
+void
+f15 (int s)
+{
+ if ((s & ((-0x1f8f) << BITSH)) > ((-0x4fd0) << BITSH))
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (-0x1000 << BITSH) - 1 || s == (-0x4000 << BITSH)
+ || s == (-0x1000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
+ || s == -1 || s == -15 || s == -15550 || s == -15552
+ || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
+ || s == 2 || s == 24 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
+ || s == 5 || s == -5 || s == -63 || s == -64 || s == -65
+ || s == -8189 || s == -8191 || s == -8192 || s == -8193
+ || s == -8250 || s == -8255 || s == -8256 || s == -8257
+ || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == (-0x4000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
+ || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
+ || s == (-0x7000 << BITSH) || s == -__INT_MAX__ - 1
+ || s == -__INT_MAX__ + 4 || s == -__INT_MAX__ + 7)
+ return;
+ }
+ abort ();
+}
+
+void
+f16 (int s)
+{
+ if ((s & ((-0x1f8f) << BITSH)) >= ((-0x4fd0) << BITSH))
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (-0x1000 << BITSH) - 1 || s == (-0x4000 << BITSH)
+ || s == (-0x1000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
+ || s == -1 || s == -15 || s == -15550 || s == -15552
+ || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
+ || s == 2 || s == 24 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
+ || s == 5 || s == -5 || s == -63 || s == -64 || s == -65
+ || s == -8189 || s == -8191 || s == -8192 || s == -8193
+ || s == -8250 || s == -8255 || s == -8256 || s == -8257
+ || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == (-0x4000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
+ || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
+ || s == (-0x7000 << BITSH) || s == -__INT_MAX__ - 1
+ || s == -__INT_MAX__ + 4 || s == -__INT_MAX__ + 7)
+ return;
+ }
+ abort ();
+}
+
+void
+f17 (int s)
+{
+ if ((s & ((-0x4000 << BITSH) | 1)) != -__INT_MAX__ - 1)
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
+ || s == (-0x7000 << BITSH) - 1 || s == (-0x4041 << BITSH)
+ || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
+ || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -1 || s == -15
+ || s == -15550 || s == -15552 || s == (0x7000 << BITSH) - 1
+ || s == (0x7000 << BITSH) || s == (1 << (BITSM1 - 2))
+ || s == (1 << (BITSM1 - 2)) - 1 || s == 2 || s == 24 || s == -32
+ || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5 || s == -63
+ || s == -64 || s == -65 || s == -__INT_MAX__ + 4 || s == -8189
+ || s == -8191 || s == -8192 || s == -8193 || s == -8250
+ || s == -8255 || s == -8256 || s == -8257 || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == (-0x5fcf << BITSH) - 1 || s == (-0x7000 << BITSH)
+ || s == -__INT_MAX__ - 1 || s == -__INT_MAX__ + 7)
+ return;
+ }
+ abort ();
+}
+
+void
+f18 (int s)
+{
+ if ((s & ((-0x4000 << BITSH) | 1)) != ((-0x4000 << BITSH) | 1))
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (-0x4000 << BITSH) - 1 || s == (-0x7000 << BITSH) - 1
+ || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
+ || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
+ || s == (-0x7000 << BITSH) || s == 1 || s == -15550 || s == -15552
+ || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
+ || s == -__INT_MAX__ - 1 || s == 2 || s == 24 || s == -32
+ || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -64
+ || s == -__INT_MAX__ + 4 || s == -8192 || s == -8250 || s == -8256
+ || s == __INT_MAX__ || s == -__INT_MAX__ + 7)
+ return;
+ }
+ else
+ {
+ if (s == (-0x1000 << BITSH) - 1 || s == (-0x4000 << BITSH) + 1
+ || s == -1 || s == -15 || s == -5 || s == -63 || s == -65
+ || s == -8189 || s == -8191 || s == -8193 || s == -8255
+ || s == -8257)
+ return;
+ }
+ abort ();
+}
+
+void
+f19 (int s)
+{
+ if ((s & ((-0x4000 << BITSH) | 1)) != ((0x4000 << BITSH) | 1))
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
+ || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
+ || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
+ || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
+ || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -1 || s == -15
+ || s == -15550 || s == -15552 || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
+ || s == -__INT_MAX__ - 1 || s == 2 || s == 24 || s == -32
+ || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5 || s == -63
+ || s == -64 || s == -65 || s == -__INT_MAX__ + 4 || s == -8189
+ || s == -8191 || s == -8192 || s == -8193 || s == -8250
+ || s == -8255 || s == -8256 || s == -8257 || s == -__INT_MAX__ + 7)
+ return;
+ }
+ else
+ {
+ if (s == (0x7000 << BITSH) - 1 || s == __INT_MAX__)
+ return;
+ }
+ abort ();
+}
+
+void
+f20 (int s)
+{
+ if ((s & (-0x1000 << BITSH)) != -__INT_MAX__ - 1)
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
+ || s == (-0x5fcf << BITSH) - 1 || s == (-0x4041 << BITSH)
+ || s == (-0x4000 << BITSH) || s == (-0x1000 << BITSH)
+ || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
+ || s == -1 || s == -15 || s == -15550 || s == -15552
+ || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
+ || s == 2 || s == 24 || s == -32 || s == (3 << (BITSM1 - 2)) + 2
+ || s == 5 || s == -5 || s == -63 || s == -64 || s == -65
+ || s == -8189 || s == -8191 || s == -8192 || s == -8193
+ || s == -8250 || s == -8255 || s == -8256 || s == -8257
+ || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == (-0x7000 << BITSH) - 1 || s == -__INT_MAX__ - 1
+ || s == -__INT_MAX__ + 4 || s == -__INT_MAX__ + 7)
+ return;
+ }
+ abort ();
+}
+
+void
+f21 (int s)
+{
+ if ((s & (-0x1000 << BITSH)) != (-0x1000 << BITSH))
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
+ || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
+ || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
+ || s == (-0x7000 << BITSH) || s == (-0x4000 << BITSH) + 1 || s == 1
+ || s == -15550 || s == -15552
+ || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
+ || s == -__INT_MAX__ - 1 || s == 2 || s == 24
+ || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -__INT_MAX__ + 4
+ || s == -8189 || s == -8191 || s == -8192 || s == -8193
+ || s == -8250 || s == -8255 || s == -8256 || s == -8257
+ || s == __INT_MAX__ || s == -__INT_MAX__ + 7)
+ return;
+ }
+ else
+ {
+ if (s == (-0x1000 << BITSH) || s == -1 || s == -15
+ || s == -32 || s == -5 || s == -63 || s == -64
+ || s == -65)
+ return;
+ }
+ abort ();
+}
+
+void
+f22 (int s)
+{
+ if ((s & (-0x1000 << BITSH)) != (0x7000 << BITSH))
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (-0x4000 << BITSH) - 1 || s == (-0x1000 << BITSH) - 1
+ || s == (-0x7000 << BITSH) - 1 || s == (-0x5fcf << BITSH) - 1
+ || s == (-0x4041 << BITSH) || s == (-0x4000 << BITSH)
+ || s == (-0x1000 << BITSH) || s == (-0x7000 << BITSH)
+ || s == (-0x4000 << BITSH) + 1 || s == 1 || s == -1 || s == -15
+ || s == -15550 || s == -15552 || s == (0x7000 << BITSH) - 1
+ || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
+ || s == -__INT_MAX__ - 1 || s == 2 || s == 24 || s == -32
+ || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5 || s == -63
+ || s == -64 || s == -65 || s == -__INT_MAX__ + 4 || s == -8189
+ || s == -8191 || s == -8192 || s == -8193 || s == -8250
+ || s == -8255 || s == -8256 || s == -8257 || s == -__INT_MAX__ + 7)
+ return;
+ }
+ else
+ {
+ if (s == (0x7000 << BITSH) || s == __INT_MAX__)
+ return;
+ }
+ abort ();
+}
+
+void
+f23 (unsigned int s)
+{
+ if ((s & (0xf000U << BITSH)) != (0x7000 << BITSH))
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
+ || s == (0x9000U << BITSH) - 1 || s == (0xa031U << BITSH) - 1
+ || s == (0xbfbfU << BITSH) || s == (0xc000U << BITSH)
+ || s == (0xf000U << BITSH) || s == (0x9000U << BITSH)
+ || s == (0xc000U << BITSH) + 1 || s == 1 || s == -1U || s == -15U
+ || s == -15550U || s == -15552U || s == (0x7000 << BITSH) - 1
+ || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
+ || s == 1U + __INT_MAX__ || s == 2 || s == 24 || s == -32U
+ || s == (3 << (BITSM1 - 2)) + 2 || s == 5 || s == -5U || s == -63U
+ || s == -64U || s == -65U || s == 6U + __INT_MAX__ || s == -8189U
+ || s == -8191U || s == -8192U || s == -8193U || s == -8250U
+ || s == -8255U || s == -8256U || s == -8257U
+ || s == __INT_MAX__ + 9U)
+ return;
+ }
+ else
+ {
+ if (s == (0x7000 << BITSH) || s == __INT_MAX__)
+ return;
+ }
+ abort ();
+}
+
+void
+f24 (unsigned int s)
+{
+ if ((s & (0xf000U << BITSH)) != (0x8000U << BITSH))
+ {
+ if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000
+ || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f
+ || s == (0xc000U << BITSH) - 1 || s == (0xf000U << BITSH) - 1
+ || s == (0xa031U << BITSH) - 1 || s == (0xbfbfU << BITSH)
+ || s == (0xc000U << BITSH) || s == (0xf000U << BITSH)
+ || s == (0x9000U << BITSH) || s == (0xc000U << BITSH) + 1 || s == 1
+ || s == -1U || s == -15U || s == -15550U || s == -15552U
+ || s == (0x7000 << BITSH) - 1 || s == (0x7000 << BITSH)
+ || s == (1 << (BITSM1 - 2)) || s == (1 << (BITSM1 - 2)) - 1
+ || s == 2 || s == 24 || s == -32U || s == (3 << (BITSM1 - 2)) + 2
+ || s == 5 || s == -5U || s == -63U || s == -64U || s == -65U
+ || s == -8189U || s == -8191U || s == -8192U || s == -8193U
+ || s == -8250U || s == -8255U || s == -8256U || s == -8257U
+ || s == __INT_MAX__)
+ return;
+ }
+ else
+ {
+ if (s == (0x9000U << BITSH) - 1 || s == 1U + __INT_MAX__
+ || s == 6U + __INT_MAX__ || s == __INT_MAX__ + 9U)
+ return;
+ }
+ abort ();
+}
+
+/* Make this easier to run on microcontroller architectures by using a switch
+ statements instead of arrays.
+ We still don't want the compiler to constant-propagate the array contents,
+ so use an asm in each accessor function with to hide what's going on. */
+
+int
+svals (int i)
+{
+ asm ("" : "=g" (i) : "0" (i));
+ switch (i)
+ {
+ case 0: return 0;
+ case 1: return 0x1cbf;
+ case 2: return 0x1cc0;
+ case 3: return 0x1fff;
+ case 4: return 0x2000;
+ case 5: return 0x20;
+ case 6: return 0x3cbf;
+ case 7: return 0x3cc0;
+ case 8: return 0x3f;
+ case 9: return (-0x4000 << BITSH) - 1;
+ case 10: return (-0x1000 << BITSH) - 1;
+ case 11: return (-0x7000 << BITSH) - 1;
+ case 12: return (-0x5fcf << BITSH) - 1;
+ case 13: return (-0x4041 << BITSH);
+ case 14: return (-0x4000 << BITSH);
+ case 15: return (-0x1000 << BITSH);
+ case 16: return (-0x7000 << BITSH);
+ case 17: return (-0x4000 << BITSH) + 1;
+ case 18: return 1;
+ case 19: return -1;
+ case 20: return -15;
+ case 21: return -15550;
+ case 22: return -15552;
+ case 23: return (0x7000 << BITSH) - 1;
+ case 24: return (0x7000 << BITSH);
+ case 25: return (1 << (BITSM1 - 2));
+ case 26: return (1 << (BITSM1 - 2)) - 1;
+ case 27: return -__INT_MAX__ - 1;
+ case 28: return 2;
+ case 29: return 24;
+ case 30: return -32;
+ case 31: return (3 << (BITSM1 - 2)) + 2;
+ case 32: return 5;
+ case 33: return -5;
+ case 34: return -63;
+ case 35: return -64;
+ case 36: return -65;
+ case 37: return -__INT_MAX__ + 4;
+ case 38: return -8189;
+ case 39: return -8191;
+ case 40: return -8192;
+ case 41: return -8193;
+ case 42: return -8250;
+ case 43: return -8255;
+ case 44: return -8256;
+ case 45: return -8257;
+ case 46: return __INT_MAX__;
+ case 47: return -__INT_MAX__ + 7;
+#define SVAL_NUM 48
+ default: abort ();
+ }
+};
+
+unsigned int
+uvals (int i)
+{
+ asm ("" : "=g" (i) : "0" (i));
+ switch (i)
+ {
+ case 0: return 0;
+ case 1: return 0x1cbf;
+ case 2: return 0x1cc0;
+ case 3: return 0x1fff;
+ case 4: return 0x2000;
+ case 5: return 0x20;
+ case 6: return 0x3cbf;
+ case 7: return 0x3cc0;
+ case 8: return 0x3f;
+ case 9: return (0xc000U << BITSH) - 1;
+ case 10: return (0xf000U << BITSH) - 1;
+ case 11: return (0x9000U << BITSH) - 1;
+ case 12: return (0xa031U << BITSH) - 1;
+ case 13: return (0xbfbfU << BITSH);
+ case 14: return (0xc000U << BITSH);
+ case 15: return (0xf000U << BITSH);
+ case 16: return (0x9000U << BITSH);
+ case 17: return (0xc000U << BITSH) + 1;
+ case 18: return 1;
+ case 19: return -1U;
+ case 20: return -15U;
+ case 21: return -15550U;
+ case 22: return -15552U;
+ case 23: return (0x7000 << BITSH) - 1;
+ case 24: return (0x7000 << BITSH);
+ case 25: return (1 << (BITSM1 - 2));
+ case 26: return (1 << (BITSM1 - 2)) - 1;
+ case 27: return 1U + __INT_MAX__;
+ case 28: return 2;
+ case 29: return 24;
+ case 30: return -32U;
+ case 31: return (3 << (BITSM1 - 2)) + 2;
+ case 32: return 5;
+ case 33: return -5U;
+ case 34: return -63U;
+ case 35: return -64U;
+ case 36: return -65U;
+ case 37: return 6U + __INT_MAX__;
+ case 38: return -8189U;
+ case 39: return -8191U;
+ case 40: return -8192U;
+ case 41: return -8193U;
+ case 42: return -8250U;
+ case 43: return -8255U;
+ case 44: return -8256U;
+ case 45: return -8257U;
+ case 46: return __INT_MAX__;
+ case 47: return __INT_MAX__ + 9U;
+#define UVAL_NUM 48
+ default: abort ();
+ }
+};
+
+int
+main ()
+{
+ int i;
+ for (i = 0; i < SVAL_NUM; i++)
+ {
+ f2 (svals (i));
+ f4 (svals (i));
+ f5 (svals (i));
+ f7 (svals (i));
+ f8 (svals (i));
+ f11 (svals (i));
+ f12 (svals (i));
+ f15 (svals (i));
+ f16 (svals (i));
+ f17 (svals (i));
+ f18 (svals (i));
+ f19 (svals (i));
+ f20 (svals (i));
+ f21 (svals (i));
+ f22 (svals (i));
+ }
+ for (i = 0; i < UVAL_NUM; i++)
+ {
+ f1 (uvals (i));
+ f3 (uvals (i));
+ f6 (uvals (i));
+ f9 (uvals (i));
+ f10 (uvals (i));
+ f13 (uvals (i));
+ f14 (uvals (i));
+ f23 (uvals (i));
+ f24 (uvals (i));
+ }
+ return 0;
+}