> FAIL: gcc.target/i386/pr116896.c scan-assembler-times \tjp\t 2
> FAIL: g++.target/i386/pr116896-1.C  -std=gnu++20  scan-assembler-times \tjp\t 
> 1
> FAIL: g++.target/i386/pr116896-1.C  -std=gnu++23  scan-assembler-times \tjp\t 
> 1
> FAIL: g++.target/i386/pr116896-1.C  -std=gnu++26  scan-assembler-times \tjp\t 
> 1
>
> with GCC configured with
>
> ../../gcc/configure 
> --prefix=/export/users3/haochenj/src/gcc-bisect/master/master/r16-3760/usr 
> --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld 
> --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl 
> --enable-libmpx x86_64-linux --disable-bootstrap
>

Grml, I had seen this error during testing but it didn't appear any more during 
the final round with the latest patch version.

This is the difference:

Before:

foo:
.LFB0:
        .cfi_startproc
        xorl    %eax, %eax
        vcomiss %xmm1, %xmm0
        jp      .L2
        seta    %al
        sbbl    $0, %eax
        ret
.L2:
        movl    $2, %eax
        ret
        .cfi_endproc

After:

foo:
.LFB0:
        .cfi_startproc
        xorl    %eax, %eax
        vcomiss %xmm1, %xmm0
        movl    $2, %edx
        seta    %al
        sbbl    $0, %eax
        vucomiss        %xmm1, %xmm0
        cmovp   %edx, %eax
        ret
        .cfi_endproc

Is the "before" what we want, given the two other functions in the test are 
branchless?  I suppose so, as the if-converted sequence is pretty lengthy.

-- 
Regards
 Robin

Reply via email to