> -----Original Message----- > From: Richard Guenther [mailto:richard.guent...@gmail.com] > Sent: Monday, February 20, 2012 4:58 PM > To: gcc@gcc.gnu.org > Cc: Kumar, Venkataramanan > Subject: Re: [i386] Question about Constraint Modifier character in smaxdf3 > pattern. > > On Sun, Feb 19, 2012 at 4:43 PM, Marc Glisse <marc.gli...@inria.fr> wrote: > > On Sun, 19 Feb 2012, Kumar, Venkataramanan wrote: > > > >> Sphinx3 benchmark segmented when built and ran with -Ofast and > >> -fprefecth-loop-arrays. > > > > [...] > > > >> In my case the register 367 is sNAN. > > > > > > -Ofast implies -ffast-math which implies -ffinite-math-only: > > Allow optimizations for floating-point arithmetic that assume that > > arguments and results are not NaNs or +-Infs. > > > > so I am not sure what you expect exactly. > > Irrespective of -ffast-math the .md file looks ok - the tree and RTL level > mark their min/max as commutative, so if there is an error the error is > that sminmax is used, not that the pattern for it has its operand marked > as commutative (this may mean that without -fno-signed-zeros and > -ffinite-math-only [s]minmax cannot be used on x86).
Since I compile with -Ofast it sets -finite-math-only. Then usage smax of pattern is correct. But in my case smax (sNAN, x) is changed to smax (x, sNAN) at reload. And sNaN is returned as result. Ok I will check see why sNAN is getting generated at the first place. > > Richard. > > > -- > > Marc Glisse