diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2023-11-20 15:37:56 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2023-11-20 15:38:48 +0000 |
commit | 59d14b623357d9b0514a9575e6d92474694b2f74 (patch) | |
tree | f87b112d1ac6969ae71da42ee2ddf224b16cb74d /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | a2cf44b72cbf9361f37dd6f680502bb18070cba3 (diff) | |
download | llvm-59d14b623357d9b0514a9575e6d92474694b2f74.zip llvm-59d14b623357d9b0514a9575e6d92474694b2f74.tar.gz llvm-59d14b623357d9b0514a9575e6d92474694b2f74.tar.bz2 |
[X86] combineLoad - try to reuse existing constant pool entries for smaller vector constant data (REAPPLIED)
If we already have a YMM/ZMM constant that a smaller XMM/YMM has matching lower bits, then ensure we reuse the same constant pool entry.
Extends the similar combines we already have to reuse VBROADCAST_LOAD/SUBV_BROADCAST_LOAD constant loads.
This is a mainly a canonicalization, but should make it easier for us to merge constant loads in a future commit (related to both #70947 and better X86FixupVectorConstantsPass usage for #71078).
Reapplied with fix to ensure we don't 'flip-flop' between multiple matching constants - only perform the fold if the new constant pool entry is larger than the current entry.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions