On 2/19/20 1:10 PM, GT wrote:
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Wednesday, February 19, 2020 12:33 PM, Bill Schmidt <wschm...@linux.ibm.com> 
wrote:

The reason 'c' was added to the ABI is this mailing list discussion:
https://sourceware.org/ml/libc-alpha/2019-11/msg00765.html
As long as 'b' specifies that the VSX functionality is that specified in ISA 
v2.07,
I suggest that we delete the reference to 'c' in the ABI. Bill, Tulio?
No, I don't think that's the right call.  We want to leverage ISA 3.0
instructionsin vector implementations when they are available, so we
need the 'c' ABI for that purpose.  In future we are likely to add a
'd' ABI for a future processor if it adds more vector capability.  So
emitting both and letting the vectorized callers choose, as Jakub
suggests, seems like the right way to go.  This is true even if the
current implementations are identical (i.e., don't exploit any ISA
3.0 instructions).

Here are proposed modifications:

1. In the Vector Function ABI document, under section "Vector Function Name 
Mangling",
state that all <isa> vector variants will be created by the compiler. And that 
it will
be up to the caller of vectorized functions to select the preferred version 
('b' or 'c'
are the only choices presently).

2. Change rs6000_simd_clone_usable so that it more closely resembles 
ix86_simd_clone_usable.
The switch statement in that function will add a clause for 'c' to the existing 
one for 'b'.
I'm not sure what to test for in the 'c' clause. In x86_64, they have 
TARGET_SSE2, TARGET_AVX,
TARGET_AVX2 and TARGET_AVX512. PPC64 has only TARGET_VSX as best I can 
determine. There are
macros PPC_FEATURE2_ARCH_2_07 and PPC_FEATURE2_ARCH_3_00 in ppc-auxv.h. Can we 
use these 2
macros where x86_64 uses the macros with prefix TARGET_ ?


You can use TARGET_P9_VECTOR for this.

Thanks,
Bill


Bert.

Reply via email to