Joseph Myers <jos...@codesourcery.com> writes: > On Wed, 22 Jun 2016, Bill Schmidt wrote: >> The fact that I hook this built-in directly to a pattern named infkf1 >> doesn't seem to preclude anything you suggest. I named it this way >> on the off-chance that inf<m>1 becomes a standard pattern in the >> future, in which case I want to generate this constant. We can >> always use gen_infkf1 to reuse this code in any other context. I'm >> not understanding your objection. > > That expander pattern is not useful given a target-independent built-in > __builtin_inff128, since it will never be used except by a built-in > function specifically associated with it. > > I don't know what code will be generated for a use of _Float128 infinity, > from the target-independent code - or, right now, for a use of > (__float128) __builtin_inf (). But if it's not the code you want, any > reasonable fix would not be restricted to the case where __builtin_inff128 > () is used - it would work equally well for any case where that constant > bit-pattern is wanted in VSX registers.
Yeah, I don't think we should have named patterns to generate constants. We should send the constant through the normal move patterns and make the expander or move define_insns handle them appropriately. Thanks, Richard