]> granicus.if.org Git - llvm/commit
[X86][SSE] isHorizontalBinOp - add support for target shuffles
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 29 Apr 2019 19:52:59 +0000 (19:52 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 29 Apr 2019 19:52:59 +0000 (19:52 +0000)
commit74390f6fa6749d8c753d2636ceb9f21057dc2e96
treef30077470959483bad0da2d886c233339da8736e
parentec0f1aa32486bcc97711382231af48de1fbb9155
[X86][SSE] isHorizontalBinOp - add support for target shuffles

Add target shuffle decoding to isHorizontalBinOp as well as ISD::VECTOR_SHUFFLE support.

This does mean we can go through bitcasts so we need to bitcast the extracted args to ensure they are the correct type

Fixes PR39936 and should help with PR39920/PR39921

Differential Revision: https://reviews.llvm.org/D61245

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359491 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/haddsub.ll
test/CodeGen/X86/phaddsub.ll
test/CodeGen/X86/vector-shuffle-256-v4.ll
test/CodeGen/X86/vector-shuffle-256-v8.ll