HomePhabricator

[PowerPC] Provide XL-compatible builtins in altivec.h

Authored by nemanjai on Apr 23 2021, 9:50 AM.

Description

[PowerPC] Provide XL-compatible builtins in altivec.h

There are some interfaces in altivec.h that are not compatible
between Clang and XL (although Clang is compatible with GCC).
Currently, we have found 3 but there may be others.

Clang/GCC signatures:

vector double vec_ctf(vector signed long long)
vector double vec_ctf(vector unsigned long long)
vector signed long long vec_cts(vector double)
vector unsigned long long vec_ctu(vector double)

XL signatures:

vector float vec_ctf(vector signed long long)
vector float vec_ctf(vector unsigned long long)
vector signed int vec_cts(vector double)
vector unsigned int vec_ctu(vector double)

This patch provides the XL behaviour under the XL_COMPAT_ALTIVEC
macro for users that rely on XL behaviour.

Differential revision: https://reviews.llvm.org/D101130

Details