> 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