diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2024-07-24 16:02:22 +0100 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2024-07-24 16:02:33 +0100 |
commit | fbd303ba5dd98d4513d62058bc1ad463507464ce (patch) | |
tree | 686856eec0293f6216a85922fcefb9c63dae2c7a /llvm/lib/CodeGen/MachineBlockPlacement.cpp | |
parent | 9f08ae8d2dd1ff9ec3b033d099282dee05528413 (diff) | |
download | llvm-fbd303ba5dd98d4513d62058bc1ad463507464ce.zip llvm-fbd303ba5dd98d4513d62058bc1ad463507464ce.tar.gz llvm-fbd303ba5dd98d4513d62058bc1ad463507464ce.tar.bz2 |
[DAG] combineAndnp - fold ANDNP(x,PSHUFB(y,z)) -> PSHUFB(y,OR(z,x))
Based off #96754 - if we are zeroing out whole elements, then fold into the PSHUFB mask instead (if MSB is set the element is zero).
Allows us to replace the non-commutative ANDNP with a much simpler OR node.
Move this after ANDNP shuffle combining as that can do a better job of this for constant ANDNP + PSHUFB masks.
Diffstat (limited to 'llvm/lib/CodeGen/MachineBlockPlacement.cpp')
0 files changed, 0 insertions, 0 deletions