On Tue, 23 Jul 2019, Tejas Joshi wrote:

> Also, CASE_MATHFN and CASE_MATHFN_FLOATN cases in builtins.c expand
> normal, F and L variants which are assigned to respective fcode
> built_in_function. This makes any function defined in builtins.def to
> have F and L variants mandatory. How these narrowing functions are
> supposed to be handled? Do we define another macro expansion like
> CASE_MATHFN or have a manual case handling in mathfn_built_in_2?
> Attached patch is what I have tried so far.

You'll need something different from CASE_MATHFN - these are a different 
kind of functions that need handling in a different way, because they are 
parametrized over certain *pairs* of types, rather than over a single 
type.

(The main case for these being built-in is probably not folding for 
constant arguments - it's generating appropriate instructions when 
building with -fno-math-errno for processors that have appropriate 
narrowing instructions, such as Power ISA 2.07 or later, which I think 
means POWER8 or later.)

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to