This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] ARM half-precision floating point, 6/8 (really about part 2 now)

Paolo Bonzini wrote:

Also, I came across the bug you fix in part 2 for my cond-optab work.

2009-04-15 Sandra Loosemore <>

    * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
    swapped, and reversed optabs exist before trying to use them.

This will actually be unnecessary after the cond-optab merge. The bug here is that can_compare_p tries widening the operand and says "we can do UNLT by going through SFmode", so that UNLT is not split into UNORDERED and LT. Then however prepare_cmp_insn does not try widening and prepare_float_lib_cmp crashes when it tries HFmode because UNLT does not have a libcall and hence an optab. On the branch, widening is tried before libcalls, which works.

If I beat you to committing the branch, I'll ask you to try reverting
that part.  If (as it is likely) you're first, I'll test whether I can
change this to an assert.

I got distracted before I could follow up on this, and now I see you've beaten me to it with the cond-optab merge. I just re-tested and found that the fp16 operations fall over in the cond-optab-merged version without my own optabs patch. Do you have another not-yet-committed patch that is supposed to address this? Otherwise I will just go ahead and commit mine, since it has already been approved.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]