[X86] LowerBUILD_VECTOR - fold build_vector(undef,freeze(undef),zero) -> zero vector
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 26 Apr 2023 09:44:49 +0000 (10:44 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 26 Apr 2023 09:44:58 +0000 (10:44 +0100)
commitae0f41d186e6e851161fe0bad37a1c207b845859
tree77542ccff27b19607c5b7dd12c0c436c158bc040
parenta93c4239719382e5b17335f3452e9095937ed6b7
[X86] LowerBUILD_VECTOR - fold build_vector(undef,freeze(undef),zero) -> zero vector

426db6b4eb2e9298598 added the build_vector(undef,freeze(undef)) -> freeze(undef) fold, but failed to account for cases where the scalar freeze(undef) had multiple uses, in those cases we can only only safely fold to a zero vector

https://alive2.llvm.org/ce/z/87jG8K
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/build-vector-128.ll
llvm/test/CodeGen/X86/freeze-vector.ll