[X86] Teach how to combine AVX and AVX2 horizontal binop on packed 256-bit vectors.
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Thu, 12 Jun 2014 10:53:48 +0000 (10:53 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Thu, 12 Jun 2014 10:53:48 +0000 (10:53 +0000)
commitbf4e625cf107715a3643cae35e83e012db0670b5
treebfdee27cbe6c6fad0c634e43493e53917da90d0b
parent38b2a0bfdde226ecfd5440399998e2c3443e57d4
[X86] Teach how to combine AVX and AVX2 horizontal binop on packed 256-bit vectors.

This patch adds target combine rules to match:
 - [AVX] Horizontal add/sub of packed single/double precision floating point
   values from 256-bit vectors;
 - [AVX2] Horizontal add/sub of packed integer values from 256-bit vectors.

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