Floating point comparison

Geoff Keating geoffk@geoffk.org
Tue Dec 3 07:12:00 GMT 2002

> From: Ian Dall <ian@beware.dropbear.id.au>
> Date: Tue, 3 Dec 2002 23:24:39 +1030

>  > The MI code is _not_ allowed to switch between GE and LT unless it
>  > knows that this is safe.
> So not for ieee float, right?

Right.  But, the point I was trying to make is that in your example,
it didn't switch between GE and LT.  Both branches are LT, it's just
that one of them is reversed.  It is your port that is interpreting a
reversed LT branch as GE, which it shouldn't be doing.

>  > I'm pretty sure it doesn't, because if it
>  > tried the rs6000 port would abort (rs6000 doesn't have a bge
>  > instruction for floating point).
>  > 
>  > The rs6000 port uses CCFPmode to track whether a branch is from a FP
>  > conditional or an integer conditional (although not for this reason);
>  > that may help you here.
> Maybe that is why the rs6000 port doesn't see this problem?

No, the middle-end doesn't know that CCFPmode is special.

- Geoffrey Keating <geoffk@geoffk.org>

More information about the Gcc mailing list