diff options
author | Luke Lau <luke@igalia.com> | 2025-09-03 09:09:19 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-03 01:09:19 +0000 |
commit | c33ccfa52b2db90bae72ac11ee50639231e93310 (patch) | |
tree | 5287773bde869e3cbc3301b240126feb3665845f /clang/utils/TableGen/RISCVVEmitter.cpp | |
parent | 410764cff5d657e66a64a8250958db99fb721385 (diff) | |
download | llvm-c33ccfa52b2db90bae72ac11ee50639231e93310.zip llvm-c33ccfa52b2db90bae72ac11ee50639231e93310.tar.gz llvm-c33ccfa52b2db90bae72ac11ee50639231e93310.tar.bz2 |
[VPlan] Reassociate (x & y) & z -> x & (y & z) (#155383)
This PR reassociates logical ands in order to enable more
simplifications.
The driving motivation for this is that with tail folding all blocks
inside the loop body will end up using the header mask. However this can
end up nestled deep within a chain of logical ands from other edges.
Typically the header mask will be a leaf nested in the LHS, e.g.
(headermask & y) & z. So pulling it out allows it to be simplified
further, e.g. allows it to be optimised away to VP intrinsics with EVL
tail folding.
Diffstat (limited to 'clang/utils/TableGen/RISCVVEmitter.cpp')
0 files changed, 0 insertions, 0 deletions