aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/ModuloSchedule.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2021-11-11 11:35:07 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2021-11-11 11:35:18 +0000
commit098ea296418f16e7c17c11b953bde67a599779b7 (patch)
tree0884522cd4fe183af02dbbd2db432fbffb10fe54 /llvm/lib/CodeGen/ModuloSchedule.cpp
parent9db2541d4c30100d7ccc6cc9db717df102b302d9 (diff)
downloadllvm-098ea296418f16e7c17c11b953bde67a599779b7.zip
llvm-098ea296418f16e7c17c11b953bde67a599779b7.tar.gz
llvm-098ea296418f16e7c17c11b953bde67a599779b7.tar.bz2
[DAG] FoldConstantArithmetic - fold intop(bitcast(buildvector(c1)),bitcast(buildvector(c1))) -> bitcast(intop(buildvector(c1'),buildvector(c2')))
Enable FoldConstantArithmetic to constant fold bitcasted constant build vectors. These have typically been bitcasted for type legalization purposes. By extracting the raw constant bit data, performing the constant fold, and then casting the constant bit data back to the (legalized) type, we can perform constant folding on integer types after legalization. This in particular helps 32-bit targets which need to handle vXi64 build vectors - during legalization the (unsupported) i64 elements are split to create a bitcasted v2Xi32 build vector. Addresses some regressions in D113192. Differential Revision: https://reviews.llvm.org/D113564
Diffstat (limited to 'llvm/lib/CodeGen/ModuloSchedule.cpp')
0 files changed, 0 insertions, 0 deletions