[X86][SSE] Add initial support for extracting non-constant bool vector elements
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 19 Mar 2022 13:31:05 +0000 (13:31 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 19 Mar 2022 13:31:05 +0000 (13:31 +0000)
commitc7ba5a9affbcabb0d05301e5417c203274667572
tree511ad7dd091ab0284f1ee7c22e5098570b52e186
parentabb9cbb22e993bb8af1be592f527eae3c48ebcbd
[X86][SSE] Add initial support for extracting non-constant bool vector elements

We can use MOVMSK+TEST/BT to extract individual bool elements even if the index isn't constant

This relies on combineBitcastvxi1 so some AVX512 cases still aren't optimized as they avoid MOVMSK usage.
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/avx512-insert-extract.ll
llvm/test/CodeGen/X86/movmsk-cmp.ll