summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
diff options
context:
space:
mode:
authorLei Huang <lei@ca.ibm.com>2017-08-14 18:09:29 +0000
committerLei Huang <lei@ca.ibm.com>2017-08-14 18:09:29 +0000
commit451ef4adcd3118d27456d24810390621317cceba (patch)
tree8b38575353f687f109770178a3961ee70eec1c0e /llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
parent0f87dbee4ea6a6ba15fe088537410ffcd3643cb1 (diff)
downloadbcm5719-llvm-451ef4adcd3118d27456d24810390621317cceba.tar.gz
bcm5719-llvm-451ef4adcd3118d27456d24810390621317cceba.zip
[PowerPC] Add codegen for VSX word extract convert to FP
Add codegen for VSX word extract conversion from signed/unsigned to single/double precision. For UINT_TO_FP: Extract word unsigned and convert to float was implemented in https://reviews.llvm.org/D20239. Here we will add the missing extract integer and conversion to double. This utilizes the new P9 instruction xxextractuw to extracting an integer element when the result will be converted to double thereby saving 2 direct moves (VSR <-> GPR). For SINT_TO_FP: We will implement the following sequence which will also reduce the number of instructions by saving 2 direct moves. v4i32->f32: xxspltw xvcvsxwsp xscvspdpn v4i32->f64: xxspltw xvcvsxwdp Differential Revision: https://reviews.llvm.org/D35859 llvm-svn: 310866
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud