aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Interpreter/InterpreterTest.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2023-05-19 22:45:14 +0100
committerSimon Pilgrim <llvm-dev@redking.me.uk>2023-05-23 10:58:17 +0100
commit0b91de5ea32d40a25c609bf155426fea12c1e2fb (patch)
treeea9722ddd02fc6e2fce27b01bc47b58c1ab0d17b /clang/unittests/Interpreter/InterpreterTest.cpp
parent85452b5f9b5aba5bdf0259b7f0d7400362f95535 (diff)
downloadllvm-0b91de5ea32d40a25c609bf155426fea12c1e2fb.zip
llvm-0b91de5ea32d40a25c609bf155426fea12c1e2fb.tar.gz
llvm-0b91de5ea32d40a25c609bf155426fea12c1e2fb.tar.bz2
[X86] Add X86FixupVectorConstantsPass to re-fold AVX512 vector load folds as broadcast folds
This patch analyzes AVX512 instructions for full vector width folded loads from the constant pool and attempts to determine if it can be replaced with a smaller broadcast folded variant. Typically the broadcast opportunities were missed by type-width mismatches or mulituse limitations which have been removed in later passes. As well as introducing broadcast fold tables (which can hopefully be extended/automated in the future), this also handles mismatches in the AND/ANDN/OR/XOR/TERNLOG type-widths, catching additional missed opportunities. This is patch is pulled from the ongoing work based on D150143, but without removing the existing DAG constant broadcast lowering code - this patch is currently a late stage cleanup only. The intention is to add additional broadcast/extension handling of constants in future patches, but it turned out that AVX512 broadcast handling was the easiest to start with. Differential Revision: https://reviews.llvm.org/D150526
Diffstat (limited to 'clang/unittests/Interpreter/InterpreterTest.cpp')
0 files changed, 0 insertions, 0 deletions