OSDN Git Service

[X86][SSE] Update raw mask shuffle decoders to handle UNDEF mask elts
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 23 Oct 2018 11:33:38 +0000 (11:33 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 23 Oct 2018 11:33:38 +0000 (11:33 +0000)
commit477d32c48ae3fcf618e72e286804c1b2b5bbecbe
treef6c1890106f2afbf78cba4e21eac5596a5860727
parent54030c22de0460fd084e4d8f8d15ffb34a1919ad
[X86][SSE] Update raw mask shuffle decoders to handle UNDEF mask elts

Matches the approach taken in the constant pool shuffle decoders, and uses an UndefElts mask instead of uint64_t(-1) raw mask values, which doesn't work safely for i32/i64 shuffle mask sizes (as the -1 value is legal).

This allows us to remove the constant pool shuffle decoders from most of the getTargetShuffleMask variable shuffle cases (X86ISD::VPERMV3 will be handled in a future commit).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@345018 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/Utils/X86ShuffleDecode.cpp
lib/Target/X86/Utils/X86ShuffleDecode.h
lib/Target/X86/X86ISelLowering.cpp