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.

Reply via email to