OSDN Git Service

X86: When lowering v8i32 himuls use the correct shuffle masks for AVX2.
authorBenjamin Kramer <benny.kra@googlemail.com>
Wed, 9 Jul 2014 11:12:39 +0000 (11:12 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Wed, 9 Jul 2014 11:12:39 +0000 (11:12 +0000)
commit4afbd3e941177f37b362dffc1731b6cfa288684a
tree8540006d8290904250c4e6ad03aed37ae04b137c
parentce184e95f9d98e90184c2cd327acb157a231af60
X86: When lowering v8i32 himuls use the correct shuffle masks for AVX2.

Turns out my trick of using the same masks for SSE4.1 and AVX2 didn't work out
as we have to blend two vectors. While there remove unecessary cross-lane moves
from the shuffles so the backend can lower it to palignr instead of vperm.

Fixes PR20118, a miscompilation of vector sdiv by constant on AVX2.

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