diff options
author | Nilanjana Basu <n_basu@apple.com> | 2023-01-25 17:35:31 -0800 |
---|---|---|
committer | Nilanjana Basu <n_basu@apple.com> | 2023-02-27 12:20:10 -0800 |
commit | 72105d10d5296ac175eb1339c4f71b67905fde61 (patch) | |
tree | fe440ace4fa4b6660390ebe4827a28ab3b1bf037 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | 0fecac18ffad476b5a4682770f6d8b1f0f176b40 (diff) | |
download | llvm-72105d10d5296ac175eb1339c4f71b67905fde61.zip llvm-72105d10d5296ac175eb1339c4f71b67905fde61.tar.gz llvm-72105d10d5296ac175eb1339c4f71b67905fde61.tar.bz2 |
[AArch64] Avoid using intermediate integer registers for copying between source and destination floating point registers
In post-isel code, there are cases where there were redundant copies from a source FPR to an intermediate GPR in order to copy to a destination FPR. In this patch, we identify these patterns in post-isel peephole optimization and replace them with a direct FPR-to-FPR copy.
One example for this will be the insertion of the scalar result of 'uaddlv' neon intrinsic function into a destination vector. During instruction selection phase, 'uaddlv' result is copied to a GPR, & a vector insert instruction is matched separately to copy the previous result to a destination SIMD&FP register.
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D142594
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions