On Wed, May 22, 2019 at 6:36 AM Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > > Hi Uros, > > >> the new testcase FAILs on i386-pc-solaris2.11 (both with the default > >> -m32 and -m64), but also on i586-unknown-freebsd11.2, i686-pc-linux-gnu: > >> > >> +FAIL: gcc.target/i386/vect-signbitf.c scan-assembler-not -2147483648 > > > > It works for me on x86_64-linux-gnu with -32, so I'm at loss on what > > might be wrong. > > I just tried x86_64-pc-linux-gnu and i686-pc-linux-gnu bootstraps: no > failures (with or without -m32) in the former, fails for both -m32 and > -m64 in the latter, just as on i386-pc-solaris2.11. >
i686 GCC generates slightly different assembly codes from x86-64 GCC with -m32: @@ -88,16 +88,16 @@ main.cold: .size a, 4096 a: .long 0 - .long 2147483648 + .long -2147483648 <<<<<<<< This matches /* { dg-final { scan-assembler-not "-2147483648" } } */ .long 1065353216 - .long 3212836864 - .long 3221225472 + .long -1082130432 + .long -1073741824 .long 1077936128 - .long 3231711232 - .long 3238002688 + .long -1063256064 + .long -1056964608 .long 1095761920 .long 1101529088 - .long 3251109888 + .long -1043857408 .long 1107558400 .zero 4048 These numbers are equivalent. Should we check andl $-2147483648, %edx instead? BTW, we also need -mfpmath=sse since it may not be the default for -m32. -- H.J.