[X86] Fold BITOP(PACKSS(X,Z),PACKSS(Y,W)) --> PACKSS(BITOP(X,Y),BITOP(Z,W)) (REAPPLIED)
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 6 Jul 2023 09:55:49 +0000 (10:55 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 6 Jul 2023 09:56:07 +0000 (10:56 +0100)
commit3f7470c33dcd11cd3f956138819ddcb24608a478
tree0cc2d05b6c06f5f8a1256a50d8fea1127e623127
parentbb65e5b88119eb5f9b744f12040c0972449b3c5a
[X86] Fold BITOP(PACKSS(X,Z),PACKSS(Y,W)) --> PACKSS(BITOP(X,Y),BITOP(Z,W)) (REAPPLIED)

Fold allsignbits pack patterns to make better use of cheap (and commutable) logic ops

Reapplied after a32d14fd4c0a / 156913cb7764 with bitcast fix
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll
llvm/test/CodeGen/X86/bitcast-and-setcc-512.ll
llvm/test/CodeGen/X86/bitcast-vector-bool.ll
llvm/test/CodeGen/X86/cast-vsel.ll
llvm/test/CodeGen/X86/movmsk-cmp.ll
llvm/test/CodeGen/X86/vector-reduce-or-bool.ll
llvm/test/CodeGen/X86/vector-reduce-xor-bool.ll