[PATCH] D32781: [PowerPC] Implement vec_xxsldi and vec_xxpermdi builtins - llvm portion.

Tony Jiang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 2 18:32:10 PDT 2017


jtony created this revision.

The vec_xxsldi and vec_xxpermdi builtins are missing from altivec.h.
This has been requested by developers working on libvpx for VP9 support for Google.

The overloads needed are as follows:
static vector double __ATTRS_o_ai vec_xxpermdi(vector double, vector double,
int);
static vector float __ATTRS_o_ai vec_xxpermdi(vector float, vector float, int);
static vector long long __ATTRS_o_ai vec_xxpermdi(vector long long,
vector long long, int);
static vector unsigned long long __ATTRS_o_ai
vec_xxpermdi(vector unsigned long long, vector unsigned long long, int);
static vector int __ATTRS_o_ai vec_xxpermdi(vector int, vector int, int);
static vector unsigned int __ATTRS_o_ai vec_xxpermdi(vector unsigned int,
vector unsigned int, int);
static vector short __ATTRS_o_ai vec_xxpermdi(vector short, vector short, int);
static vector unsigned short __ATTRS_o_ai vec_xxpermdi(vector unsigned short,
vector unsigned short,
int);
static vector signed char __ATTRS_o_ai vec_xxpermdi(vector signed char,
vector signed char, int);
static vector unsigned char __ATTRS_o_ai vec_xxpermdi(vector unsigned char,
vector unsigned char,
int);

static vector double __ATTRS_o_ai vec_xxsldi(vector double, vector double, int);
static vector float __ATTRS_o_ai vec_xxsldi(vector float, vector float, int);
static vector long long __ATTRS_o_ai vec_xxsldi(vector long long,
vector long long, int);
static vector unsigned long long __ATTRS_o_ai
vec_xxsldi(vector unsigned long long, vector unsigned long long, int);
staticvector int __ATTRS_o_ai vec_xxsldi(vector int, vector int, int);
static vector unsigned int __ATTRS_o_ai vec_xxsldi(vector unsigned int,
vector unsigned int, int);
static vector short __ATTRS_o_ai vec_xxsldi(vector short, vector short, int);
static vector unsigned short __ATTRS_o_ai vec_xxsldi(vector unsigned short,
vector unsigned short,
int);
static vector signed char __ATTRS_o_ai vec_xxsldi(vector signed char,
vector signed char, int);
static vector unsigned char __ATTRS_o_ai vec_xxsldi(vector unsigned char,
vector unsigned char, int);


https://reviews.llvm.org/D32781

Files:
  include/llvm/IR/IntrinsicsPowerPC.td
  lib/Target/PowerPC/PPCInstrVSX.td
  test/CodeGen/PowerPC/p9-xxpermdi.ll
  test/CodeGen/PowerPC/p9-xxsldi.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32781.97539.patch
Type: text/x-patch
Size: 4876 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170503/b3ef54ab/attachment.bin>


More information about the llvm-commits mailing list