summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2014-06-09 03:31:47 +0000
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>2014-06-09 03:31:47 +0000
commit7f6596bb13e85cd11f16c997c9aa62ad5a09376f (patch)
treed5bc1af04832f8d121d559feae48af93b5d34967 /llvm
parent4b56692e3032a41e3a172905ff9407649cba004e (diff)
downloadbcm5719-llvm-7f6596bb13e85cd11f16c997c9aa62ad5a09376f.tar.gz
bcm5719-llvm-7f6596bb13e85cd11f16c997c9aa62ad5a09376f.zip
[PPC64LE] Implement little-endian semantics for vec_sums
The PowerPC vsumsws instruction, accessed via vec_sums, is defined architecturally with a big-endian bias, in that the second input vector and the result always reference big-endian element 3 (little-endian element 0). For ease of porting, the programmer wants elements 3 in both cases. To provide this semantics, for little endian we generate a permute for the second input vector prior to the vsumsws instruction, and generate a permute for the result vector following the vsumsws instruction. The correctness of this code is tested by the new sums.c test added in a previous patch, as well as the modifications to builtins-ppc-altivec.c in the present patch. llvm-svn: 210449
Diffstat (limited to 'llvm')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud