]> granicus.if.org Git - llvm/commit
[CodeGen] Re-apply r234809 (concat of scalars), with an x86_mmx fix.
authorAhmed Bougacha <ahmed.bougacha@gmail.com>
Thu, 16 Apr 2015 02:39:14 +0000 (02:39 +0000)
committerAhmed Bougacha <ahmed.bougacha@gmail.com>
Thu, 16 Apr 2015 02:39:14 +0000 (02:39 +0000)
commit363a2799ffea47eaccafb4608646316d8630aa75
treec26f9699439706a755b822e9d94be6d360cdc18f
parentce6a39f31f1b17089b1a3d12390733da1616fed1
[CodeGen] Re-apply r234809 (concat of scalars), with an x86_mmx fix.

The only type that isn't an integer, isn't floating point, and isn't
a vector; ladies and gentlemen, the gift that keeps on giving: x86_mmx!

Fixes PR23246.

Original message (reverted in r235062):
[CodeGen] Combine concat_vectors of scalars into build_vector.

Combine something like:
  (v8i8 concat_vectors (v2i8 bitcast (i16)) x4)
into:
  (v8i8 (bitcast (v4i16 BUILD_VECTOR (i16) x4)))

If any of the scalars are floating point, use that throughout.

Differential Revision: http://reviews.llvm.org/D8948

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235072 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/AArch64/concat_vector-scalar-combine.ll [new file with mode: 0644]
test/CodeGen/X86/pr23246.ll [new file with mode: 0644]