diff options
Diffstat (limited to 'llvm/test/CodeGen/PowerPC/stack-realign.ll')
| -rw-r--r-- | llvm/test/CodeGen/PowerPC/stack-realign.ll | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/llvm/test/CodeGen/PowerPC/stack-realign.ll b/llvm/test/CodeGen/PowerPC/stack-realign.ll index 00cd61df7ed..d92f93b517f 100644 --- a/llvm/test/CodeGen/PowerPC/stack-realign.ll +++ b/llvm/test/CodeGen/PowerPC/stack-realign.ll @@ -83,18 +83,26 @@ entry: ; CHECK-32-DAG: subfic 0, [[REG]], -64 ; CHECK-32: stwux 1, 1, 0 ; CHECK-32: subf 0, 0, 1 -; CHECK-32: stw 30, -8(0) -; CHECK-32: mr 30, 0 +; CHECK-32: addic 0, 0, -4 +; CHECK-32: stwx 31, 0, 0 +; CHECK-32: addic 0, 0, -4 +; CHECK-32: stwx 30, 0, 0 +; CHECK-32: addic 30, 0, 8 ; CHECK-32-PIC-LABEL: @goo ; CHECK-32-PIC-DAG: mflr [[LR:[0-9]+]] ; CHECK-32-PIC-DAG: clrlwi [[REG:[0-9]+]], 1, 27 ; CHECK-32-PIC-DAG: stw [[LR]], 4(1) ; CHECK-32-PIC-DAG: subfic 0, [[REG]], -64 -; CHECK-32-PIC: stwux 1, 1, 0 -; CHECK-32-PIC: subf 0, 0, 1 -; CHECK-32-PIC: stw 29, -12(0) -; CHECK-32-PIC-DAG: mr 29, 0 +; CHECK-32-PIC: stwux 1, 1, 0 +; CHECK-32-PIC: subf 0, 0, 1 +; CHECK-32-PIC: addic 0, 0, -4 +; CHECK-32-PIC: stwx 31, 0, 0 +; CHECK-32-PIC: addic 0, 0, -4 +; CHECK-32-PIC: stwx 30, 0, 0 +; CHECK-32-PIC: addic 0, 0, -4 +; CHECK-32-PIC: stwx 29, 0, 0 +; CHECK-32-PIC: addic 29, 0, 12 ; The large-frame-size case. define void @hoo(%struct.s* byval nocapture readonly %a) { @@ -138,9 +146,11 @@ entry: ; CHECK-32-DAG: subfc 0, [[REG3]], [[REG2]] ; CHECK-32: stwux 1, 1, 0 ; CHECK-32: subf 0, 0, 1 -; CHECK-32-DAG: stw 31, -4(0) -; CHECK-32-DAG: stw 30, -8(0) -; CHECK-32: mr 30, 0 +; CHECK-32: addic 0, 0, -4 +; CHECK-32: stwx 31, 0, 0 +; CHECK-32: addic 0, 0, -4 +; CHECK-32: stwx 30, 0, 0 +; CHECK-32: addic 30, 0, 8 ; CHECK-32: blr @@ -152,10 +162,13 @@ entry: ; CHECK-32-PIC-DAG: ori [[REG2:[0-9]+]], [[REG1]], 51904 ; CHECK-32-PIC-DAG: stw 0, 4(1) ; CHECK-32-PIC-DAG: subfc 0, [[REG3]], [[REG2]] -; CHECK-32-PIC: stwux 1, 1, 0 -; CHECK-32-PIC: stw 29, -12(0) -; CHECK-32-PIC: subf 0, 0, 1 -; CHECK-32-PIC: mr 29, 0 +; CHECK-32-PIC: stwux 1, 1, 0 +; CHECK-32-PIC: subf 0, 0, 1 +; CHECK-32-PIC: addic 0, 0, -4 +; CHECK-32-PIC: stwx 31, 0, 0 +; CHECK-32-PIC: addic 0, 0, -8 +; CHECK-32-PIC: stwx 29, 0, 0 +; CHECK-32-PIC: addic 29, 0, 12 ; CHECK-32: blr |

