OSDN Git Service

[X86] Canonicalize (concat_vectors X, zero) -> (insert_subvector zero, X, 0).
authorCraig Topper <craig.topper@intel.com>
Sun, 3 Sep 2017 17:52:19 +0000 (17:52 +0000)
committerCraig Topper <craig.topper@intel.com>
Sun, 3 Sep 2017 17:52:19 +0000 (17:52 +0000)
commit05f56c0b3fe89658b1f563cb5cfc0405582474d3
treec7442c7dda42908d34c12012bc2c73ff0ae30148
parent74c232b75f3aa0b64ca287c5e0cb29dce1bd1ca8
[X86] Canonicalize (concat_vectors X, zero) -> (insert_subvector zero, X, 0).

In a future patch, I plan to teach isel to use a small vector move with implicit zeroing of the upper elements when it sees the (insert_subvector zero, X, 0) pattern.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312448 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx-intrinsics-fast-isel.ll
test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
test/CodeGen/X86/madd.ll
test/CodeGen/X86/merge-consecutive-loads-256.ll
test/CodeGen/X86/merge-consecutive-loads-512.ll
test/CodeGen/X86/vector-shuffle-variable-256.ll