Fix build_gt and build_lt for signed 1 bit values.
authorAndrew MacLeod <amacleod@redhat.com>
Wed, 30 Jun 2021 18:15:53 +0000 (14:15 -0400)
committerAndrew MacLeod <amacleod@redhat.com>
Fri, 2 Jul 2021 15:34:53 +0000 (11:34 -0400)
commit84f7bab89279ca1234fef88929c74caeda8cb55e
tree708a82e60c51b389b97afe85ae048da09d0ba3e3
parent18d0fad77b580d1ac64ed04d94fd3c9795687b91
Fix build_gt and build_lt for signed 1 bit values.

Signed 1 bit values have a range of [-1, 0] but neither (0 - 1) nor (-1 + 1)
can be represented.  For signed values, add or subtract -1 as appropriate.

PR tree-optimization/101223
gcc/
* range-op.cc (build_lt): Add -1 for signed values.
(built_gt): Subtract -1 for signed values.

gcc/testsuite/
* gcc.dg/pr101223.c: New.
gcc/range-op.cc
gcc/testsuite/gcc.dg/pr101223.c [new file with mode: 0644]