aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Module.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <RKSimon@users.noreply.github.com>2024-02-11 15:02:27 +0000
committerGitHub <noreply@github.com>2024-02-11 15:02:27 +0000
commitb45de48be24695b613f48ed21bb35f844454193b (patch)
tree27a3e473f0970e1e8be798bbfb59a43f2a32e581 /clang/lib/Basic/Module.cpp
parente3f684d86b308bc2576d813aad1a230aa6b295ab (diff)
downloadllvm-b45de48be24695b613f48ed21bb35f844454193b.zip
llvm-b45de48be24695b613f48ed21bb35f844454193b.tar.gz
llvm-b45de48be24695b613f48ed21bb35f844454193b.tar.bz2
[MVE] Expand64BitShift - handle all constant shift amounts less than 32 (#81261)
Expand64BitShift was always dropping to generic shift legalization if the shift amount type was larger than i64, even if the constant shift amount was actually very small. I've adjusted the constant bounds checks to work with APInt types so we can always perform the comparison. This results in the MVE long shift instructions being used more often, and it looks like this is preventing some additional combines from happening. This could be addressed in the future. This came about while I was trying to extend the DAGTypeLegalizer::ExpandShift* helpers and need to move to consistently using the legal shift amount types instead of reusing the shift amount type from the original wider shift.
Diffstat (limited to 'clang/lib/Basic/Module.cpp')
0 files changed, 0 insertions, 0 deletions