diff options
author | chenglin.bi <chenglin.bi@linaro.org> | 2022-07-20 11:06:16 +0800 |
---|---|---|
committer | chenglin.bi <chenglin.bi@linaro.org> | 2022-07-20 11:46:10 +0800 |
commit | d337c1f2565a748bcf3f162d0754a362b2c597a4 (patch) | |
tree | 318657b1713e11ff90d8d79d3008bf6d07c50c61 /llvm/lib/CodeGen/ExpandVectorPredication.cpp | |
parent | 5b0e96a8ff7420454bb68fa4dc064db829a80641 (diff) | |
download | llvm-d337c1f2565a748bcf3f162d0754a362b2c597a4.zip llvm-d337c1f2565a748bcf3f162d0754a362b2c597a4.tar.gz llvm-d337c1f2565a748bcf3f162d0754a362b2c597a4.tar.bz2 |
[AArch64] Use SUBXrx64 for dynamic stack to refer to sp
When we lower dynamic stack, we need to substract pattern `x15 << 4` from sp.
Subtract instruction with arith shifted register(SUBXrs) can't refer to sp. So for now we need two extra mov like:
```
mov x0, sp
sub x0, x0, x15, lsl #4
mov sp, x0
```
If we want to refer to sp in subtract instruction like this:
```
sub sp, sp, x15, lsl #4
```
We must use arith extended register version(SUBXrx).
So in this patch when we find sub have sp operand on src0, try to select to SubXrx64.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D129932
Diffstat (limited to 'llvm/lib/CodeGen/ExpandVectorPredication.cpp')
0 files changed, 0 insertions, 0 deletions