diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-03-20 19:35:09 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2018-03-20 19:35:09 +0000 |
| commit | 4094ab73cc08c68749c4586d487e59dfd5210265 (patch) | |
| tree | 6fb41083f90b60bb03ba06ac489eb53bfd3b9493 /llvm/test/CodeGen/Hexagon/mlong-calls.ll | |
| parent | 65059ee2849ff909c07b2a5679964b475bd29f05 (diff) | |
| download | bcm5719-llvm-4094ab73cc08c68749c4586d487e59dfd5210265.tar.gz bcm5719-llvm-4094ab73cc08c68749c4586d487e59dfd5210265.zip | |
[Hexagon] Add a few more lit tests, NFC
llvm-svn: 328023
Diffstat (limited to 'llvm/test/CodeGen/Hexagon/mlong-calls.ll')
| -rw-r--r-- | llvm/test/CodeGen/Hexagon/mlong-calls.ll | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Hexagon/mlong-calls.ll b/llvm/test/CodeGen/Hexagon/mlong-calls.ll new file mode 100644 index 00000000000..d76b87f987f --- /dev/null +++ b/llvm/test/CodeGen/Hexagon/mlong-calls.ll @@ -0,0 +1,41 @@ +; RUN: llc -hexagon-long-calls -march=hexagon -enable-save-restore-long=true < %s | FileCheck %s + +; CHECK: call ##f1 +; CHECK: jump ##__restore + +; Function Attrs: minsize nounwind +define i64 @f0(i32 %a0, i32 %a1) #0 { +b0: + %v0 = add nsw i32 %a0, 5 + %v1 = tail call i64 @f1(i32 %v0) #1 + %v2 = sext i32 %a1 to i64 + %v3 = add nsw i64 %v1, %v2 + ret i64 %v3 +} + +; Function Attrs: minsize nounwind +declare i64 @f1(i32) #0 + +; Function Attrs: nounwind +define i64 @f2(i32 %a0, i32 %a1) #1 { +b0: + %v0 = add nsw i32 %a0, 5 + %v1 = tail call i64 @f1(i32 %v0) #1 + ret i64 %v1 +} + +; Function Attrs: noreturn nounwind +define i64 @f3(i32 %a0, i32 %a1) #2 { +b0: + %v0 = add nsw i32 %a0, 5 + %v1 = tail call i64 @f4(i32 %v0) #2 + unreachable +} + +; Function Attrs: noreturn +declare i64 @f4(i32) #3 + +attributes #0 = { minsize nounwind } +attributes #1 = { nounwind } +attributes #2 = { noreturn nounwind } +attributes #3 = { noreturn } |

