[X86] Fold vXi1 OR(KSHIFTL(X,NumElts/2),Y) -> KUNPCK
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 11 Jun 2020 14:38:39 +0000 (15:38 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 11 Jun 2020 14:47:20 +0000 (15:47 +0100)
commit7706c7af74419675a6d62548ddb9c34ea995d34f
tree62449826886ffbf32e022ad22a06edad672a43c2
parent2abad3433f9f48cb0a103726a9af1ad79603d23d
[X86] Fold vXi1 OR(KSHIFTL(X,NumElts/2),Y) -> KUNPCK

Convert shift+or bool vector patterns into CONCAT_VECTORS if we know this will be lowered to KUNPCK (which requires 16+ vector elements).

Fixes PR32547
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/vector-shuffle-v1.ll