https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93709

--- Comment #5 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
There are below difference between data/instructions for P8 and P9:
(maxlocval_4.f90)

f29=-inf
f30=-inf
f31=nan

P9:
xsmaxcdp vs31,vs29,vs31  ==> vs31/f31:nan (smax(-inf, nan)-->nan)
b       0x10004b60 <MAIN__+15760> 

P8:
fcmpu   cr0,f29,f31
blt     0x10004c20 <MAIN__+15952>  (not jump,  -inf < nan --> false"
fmr     f31,f29             ==>f31:-inf
b       0x10004c20 <MAIN__+15952>

On P9, 'f31' becomes ‘nan’ by instruction "xsmaxcdp".
While on P8, 'f31' becomes '-inf' through "fcmpu and blt".

Reply via email to