On Tue, Aug 20, 2019 at 05:19:46PM +0200, Ilya Leoshkevich wrote: > > Am 20.08.2019 um 17:04 schrieb Segher Boessenkool > > <seg...@kernel.crashing.org>: > > The < and > operators separately already can cause exceptions, unless > > you use -fno-trapping-math, in which case you cannot have LTGT at all. > > Hmm, I've just tried compiling: > > int foo(float a, float b) { return ((a < b) || (a > b)); } > > with -ftrapping-math and -fno-trapping-math with gcc 8.0.1, and got LTGT > on tree and rtl levels in both cases: > > 232t.optimized: _1 = a_2(D) <> b_3(D); > 312r.final: (if_then_else:SI (ltgt (reg:CCS 33 %cc)
Hrm, it seems to need -ffinite-math-only, even? Or just -ffast-math of course. (That'll teach me to post without testing for another year or two, sorry!) Segher