> It's the encoding of 1.0f (single precision). The point is that we want > something we can safely compare with 0.0f using floating-point instructions. > "Safe" means "without generating any kind of exception", so a subnormal > representation like 0x00000001 isn't acceptable. 1.0f seems as good a > value as any. >
> Yes, this is OK. Your split looks good, but I don't see any reason > for the !CANNOT_CHANGE_MODE_CLASS condition. > > Couple of minor suggestions: > > - There is no need for the double quotes around the { ... }. > Plain { ... } is better. (Support for plain { ... } was > added a few years ago, so you can still see some older code > that uses "{ ... }". But { ... } is better for new code.) > > - It's generally better to restrict match_dups to things > that depend on the operands of the original insn. > In the above, it'd be better to replace (match_dup 4) > with (const_int 0) and then not set operands[4] in the > C code. (match_dup 3) is OK as an exception because > read-rtl.c doesn't support hex constants yet... Thanks, learned a lot from your detailed explanation. -- Best Regards.