OSDN Git Service

[X86] Improve a dag-combine that handles a vector extract -> zext sequence.
authorMichael Kuperstein <michael.m.kuperstein@intel.com>
Thu, 4 Dec 2014 13:49:51 +0000 (13:49 +0000)
committerMichael Kuperstein <michael.m.kuperstein@intel.com>
Thu, 4 Dec 2014 13:49:51 +0000 (13:49 +0000)
commit5e343e6fd0c6d816a0fe5e486f7a60582012bf8f
tree530d0ece68650ce03f25d7029cd34e460302fa97
parent996b683a9f4694d6f2a6a4ef0438d4c11e792253
[X86] Improve a dag-combine that handles a vector extract -> zext sequence.

The current DAG combine turns a sequence of extracts from <4 x i32> followed by zexts into a store followed by scalar loads.
According to measurements by Martin Krastev (see PR 21269) for x86-64, a sequence of an extract, movs and shifts gives better performance. However, for 32-bit x86, the previous sequence still seems better.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223360 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/gather-addresses.ll