This is an archive of the discontinued LLVM Phabricator instance.

[PowerPC] Implement plain VSX load/store builtins.
ClosedPublic

Authored by jtony on Nov 3 2016, 8:49 AM.

Details

Summary

Implement all the different 24 overloads for vec_xl and vec_xst.

Signatures:
vector signed char vec_xl (signed long long, signed char *);
vector unsigned char vec_xl (signed long long, unsigned char *);
vector signed int vec_xl (signed long long, signed int *);
vector unsigned int vec_xl (signed long long, unsigned int *);
vector signed int128 vec_xl (signed long long, signed int128 *);
vector unsigned int128 vec_xl (signed long long, unsigned int128 *);
vector signed long long vec_xl (signed long long, signed long long *);
vector unsigned long long vec_xl (signed long long, unsigned long long *);
vector signed short vec_xl (signed long long, signed short *);
vector unsigned short vec_xl (signed long long, unsigned short *);
vector double vec_xl (signed long long, double *);
vector float vec_xl (signed long long, float *);
void vec_xst (vector signed char, signed long long, signed char *);
void vec_xst (vector unsigned char, signed long long, unsigned char *);
void vec_xst (vector signed int, signed long long, signed int *);
void vec_xst (vector unsigned int, signed long long, unsigned int *);
void vec_xst (vector signed int128, signed long long, signed int128 *);
void vec_xst (vector unsigned int128, signed long long, unsigned int128 *);
void vec_xst (vector signed long long, signed long long, signed long long *);
void vec_xst (vector unsigned long long, signed long long, unsigned long long *);
void vec_xst (vector signed short, signed long long, signed short *);
void vec_xst (vector unsigned short, signed long long, unsigned short *);
void vec_xst (vector double, signed long long, double *);
void vec_xst (vector float, signed long long, float *);

Diff Detail

Event Timeline

jtony updated this revision to Diff 76867.Nov 3 2016, 8:49 AM
jtony retitled this revision from to [PowerPC] Implement plain VSX load/store builtins..
jtony updated this object.
jtony added subscribers: llvm-commits, cfe-commits, echristo.
nemanjai added inline comments.Nov 4 2016, 1:39 PM
lib/Headers/altivec.h
15618

Please move the __int128 overloads below the 64-bit ones to keep the overloads ordered by size.

jtony updated this revision to Diff 76945.Nov 4 2016, 2:28 PM

Reorder the overloads according to their size.

jtony updated this revision to Diff 77037.Nov 7 2016, 7:49 AM

I also migrated this commit from the old anonymous repository to the new jtony repository to prepare for committing upstream (use git svn dcommit). Should not have any difference with the previous patch, update it just in case.

jtony updated this revision to Diff 77190.Nov 8 2016, 7:19 AM

Add -U999999 option to git diff to show context for this patch.

kbarton accepted this revision.Nov 8 2016, 9:52 AM
kbarton edited edge metadata.

LGTM

This revision is now accepted and ready to land.Nov 8 2016, 9:52 AM