This is an archive of the discontinued LLVM Phabricator instance.

[PowerPC] Implement remaining permute builtins in altivec.h - Clang portion
ClosedPublic

Authored by nemanjai on Nov 9 2016, 3:14 PM.

Details

Summary

This adds the following signatures into altivec.h:

vector bool long long vec_mergee (vector bool long long, vector bool long long);
vector signed long long vec_mergee (vector signed long long, vector signed long long);
vector unsigned long long vec_mergee (vector unsigned long long, vector unsigned long long);
vector float vec_mergee (vector float, vector float);
vector double vec_mergee (vector double, vector double);
vector bool long long vec_mergeo (vector bool long long, vector bool long long);
vector signed long long vec_mergeo (vector signed long long, vector signed long long);
vector unsigned long long vec_mergeo (vector unsigned long long, vector unsigned long long);
vector double vec_mergeo (vector double, vector double);
vector float vec_mergeo (vector float, vector float);
vector unsigned short vec_pack_to_short_fp32 (vector float, vector float);
vector bool char vec_permxor (vector bool char, vector bool char, vector bool char);
vector unsigned char vec_permxor (vector signed char, vector signed char, vector signed char);
vector unsigned char vec_permxor (vector unsigned char, vector unsigned char, vector unsigned char);
vector unsigned int vec_rlmi (vector unsigned int, vector unsigned int, vector unsigned int);
vector unsigned long long vec_rlmi (vector unsigned long long, vector unsigned long long, vector unsigned long long);
vector unsigned int vec_rlnm (vector unsigned int, vector unsigned int, vector unsigned int);
vector double vec_unpackh (vector float);
vector double vec_unpackl (vector float);
vector float vec_pack (vector double, vector double);

Diff Detail

Repository
rL LLVM

Event Timeline

nemanjai updated this revision to Diff 77404.Nov 9 2016, 3:14 PM
nemanjai retitled this revision from to [PowerPC] Implement remaining permute builtins in altivec.h - Clang portion.
nemanjai updated this object.
nemanjai set the repository for this revision to rL LLVM.
nemanjai added subscribers: cfe-commits, echristo.
amehsan edited edge metadata.Nov 10 2016, 7:30 AM

more context?

I actually wanted to check some surrounding guards.

more context?

Really sorry. It appears that I uploaded the wrong patch file. Updating now.

nemanjai updated this revision to Diff 77494.Nov 10 2016, 8:32 AM
nemanjai edited edge metadata.

Accidentally uploaded the wrong patch so it was missing full context.

kbarton accepted this revision.Nov 10 2016, 11:17 AM
kbarton edited edge metadata.

LGTM

This revision is now accepted and ready to land.Nov 10 2016, 11:17 AM
sfertile edited edge metadata.Nov 11 2016, 8:51 AM
include/clang/Basic/BuiltinsPPC.def
385–388

A minor quibble: we have the __builtin_altivec_* functions added after the vsx builtins, rather than with the rest of the altivec builtins.

nemanjai added inline comments.Nov 11 2016, 1:52 PM
include/clang/Basic/BuiltinsPPC.def
385–388

Good point. Thanks Sean. I'll move them on the commit.

nemanjai closed this revision.Nov 11 2016, 2:44 PM

Committed revision 286650.