On 22.05.19 13:09, Richard Henderson wrote:
> On 5/22/19 7:01 AM, David Hildenbrand wrote:
>>
>>> I also think that, if we create a bunch more of these wrappers:
>>>
>>>> +DEF_VFAE_HELPER(8)
>>>> +DEF_VFAE_HELPER(16)
>>>> +DEF_VFAE_HELPER(32)
>>>
>>> then RT and ZS can be passed in as constant parameters to the above, and 
>>> then
>>> the compiler will fold away all of the stuff that's not needed for each
>>> different case.  Which, I think, is significant.  These are practically
>>> different instructions with the different modifiers.
>>>
>>
>> So, we have 4 flags, resulting in 16 variants. Times 3 element sizes ...
>> 48 helpers in total. Do we really want to go down that path?
> 
> Maybe?

Hope my fingers won't bleed from all the copy-pasting ;)

> 
>> I can also go ahead any try to identify the most frequent users (in
>> Linux) and only specialize that one.
> 
> Also plausible.  I guess it would be good to know, anyway.

I'll dump the parameters when booting Linux. My gut feeling is that the
cc option is basically never used ...

> 
> I think RT probably makes the largest difference to the layout of the 
> function,

Yes. I think the RT and ZS make the biggest difference. IN - not really
that heavy.

Maybe use different variants for RT and ZS for the !CC casen only.

> so maybe that's the one we pick.  We could also leave our options open and 
> make
> the 3 non-CC flags be parameters to the inline function, just extract them 
> from
> the M4 parameter at the one higher level.

That one, I have already done :)

-- 

Thanks,

David / dhildenb

Reply via email to