diff options
author | David Green <david.green@arm.com> | 2025-06-24 13:08:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-24 13:08:59 +0100 |
commit | 825ad86aea5016f0466347862c8f6d23894ddc5a (patch) | |
tree | 14421deec2b02c4631afbecaac48d9c6930470aa /clang/lib/CodeGen/CodeGenModule.h | |
parent | db72f6cbe6344581e98c2aa2ef7f82c04c74d3d7 (diff) | |
download | llvm-825ad86aea5016f0466347862c8f6d23894ddc5a.zip llvm-825ad86aea5016f0466347862c8f6d23894ddc5a.tar.gz llvm-825ad86aea5016f0466347862c8f6d23894ddc5a.tar.bz2 |
[DAG] Fold nested add(add(reduce(a), b), add(reduce(c), d)) (#115150)
This patch reassociates `add(add(vecreduce(a), b), add(vecreduce(c),
d))` into `add(vecreduce(add(a, c)), add(b, d))`, to combine the
reductions into a single node. This comes up after unrolling vectorized
loops.
There is another small change to move reassociateReduction inside fadd
outside of a AllowNewConst block, as new constants will not be created
and it should be OK to perform the combine later after legalization.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.h')
0 files changed, 0 insertions, 0 deletions