Vector element extraction without stack operations on Power 8
authorNemanja Ivanovic <nemanja.i.ibm@gmail.com>
Fri, 9 Oct 2015 11:12:18 +0000 (11:12 +0000)
committerNemanja Ivanovic <nemanja.i.ibm@gmail.com>
Fri, 9 Oct 2015 11:12:18 +0000 (11:12 +0000)
commitb386929d2e65d90acb1a829ad3e354ce36370a46
tree923ec6b15957e04b63071ede6639e29c7647d4dd
parent12b807e83a2dcbc0fb8adf62657f0837096df0f0
Vector element extraction without stack operations on Power 8

This patch corresponds to review:
http://reviews.llvm.org/D12032

This patch builds onto the patch that provided scalar to vector conversions
without stack operations (D11471).
Included in this patch:

    - Vector element extraction for all vector types with constant element number
    - Vector element extraction for v16i8 and v8i16 with variable element number
    - Removal of some unnecessary COPY_TO_REGCLASS operations that ended up
      unnecessarily moving things around between registers

Not included in this patch (will be in upcoming patch):

    - Vector element extraction for v4i32, v4f32, v2i64 and v2f64 with
      variable element number
    - Vector element insertion for variable/constant element number

Testing is provided for all extractions. The extractions that are not
implemented yet are just placeholders.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249822 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/PowerPC/PPCInstrVSX.td
lib/Target/PowerPC/PPCVSXCopy.cpp
test/CodeGen/PowerPC/p8-scalar_vector_conversions.ll