On 11/22/2015 05:57 PM, Segher Boessenkool wrote:
Hi Richard,

On Sun, Nov 22, 2015 at 11:38:31AM +0100, Richard Henderson wrote:
One of which I believe I've worked around in the i386 backend, but I
believe to be a latent problem within combine.

With the following patch, disable the add<mode>3_*_overflow_2 patterns.
Then compile c-c++-common/torture/builtin-arith-overflow-4.c with -O2 and
you'll see

  t151_2add:
        testb   %dil, %dil
        leal    -1(%rdi), %eax
        jne     .L644


0xff + x < 0xff  (everything as unsigned char) is the same as  x != 0 .

You'd think yes. But certainly something right there triggered the abort that fails the test case. Perhaps I simply mis-identified the error, but the "fix" for this fixed the other as well.


r~

Reply via email to