summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2015-05-05 19:29:21 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2015-05-05 19:29:21 +0000
commitcd2a1b5341a3c42b1a56f8f301bd0de0343b5e8e (patch)
tree1a531a74e28c6c4ffbffa35ad6872e8cbe5f38e3 /clang/lib/Basic/Targets.cpp
parent49506d78e7f437785f4d3f68063f4aa9c622bb2c (diff)
downloadbcm5719-llvm-cd2a1b5341a3c42b1a56f8f301bd0de0343b5e8e.tar.gz
bcm5719-llvm-cd2a1b5341a3c42b1a56f8f301bd0de0343b5e8e.zip
[SystemZ] Handle sub-128 vectors
The ABI allows sub-128 vectors to be passed and returned in registers, with the vector occupying the upper part of a register. We therefore want to legalize those types by widening the vector rather than promoting the elements. The patch includes some simple tests for sub-128 vectors and also tests that we can recognize various pack sequences, some of which use sub-128 vectors as temporary results. One of these forms is based on the pack sequences generated by llvmpipe when no intrinsics are used. Signed unpacks are recognized as BUILD_VECTORs whose elements are individually sign-extended. Unsigned unpacks can have the equivalent form with zero extension, but they also occur as shuffles in which some elements are zero. Based on a patch by Richard Sandiford. llvm-svn: 236525
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud