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".