diff options
Diffstat (limited to 'test/CodeGen/ARM64/volatile.ll')
-rw-r--r-- | test/CodeGen/ARM64/volatile.ll | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/CodeGen/ARM64/volatile.ll b/test/CodeGen/ARM64/volatile.ll new file mode 100644 index 0000000..e00ac5a --- /dev/null +++ b/test/CodeGen/ARM64/volatile.ll @@ -0,0 +1,27 @@ +; RUN: llc < %s -march=arm64 | FileCheck %s +define i64 @normal_load(i64* nocapture %bar) nounwind readonly { +; CHECK: normal_load +; CHECK: ldp +; CHECK-NEXT: add +; CHECK-NEXT: ret + %add.ptr = getelementptr inbounds i64* %bar, i64 1 + %tmp = load i64* %add.ptr, align 8 + %add.ptr1 = getelementptr inbounds i64* %bar, i64 2 + %tmp1 = load i64* %add.ptr1, align 8 + %add = add nsw i64 %tmp1, %tmp + ret i64 %add +} + +define i64 @volatile_load(i64* nocapture %bar) nounwind { +; CHECK: volatile_load +; CHECK: ldr +; CHECK-NEXT: ldr +; CHECK-NEXT: add +; CHECK-NEXT: ret + %add.ptr = getelementptr inbounds i64* %bar, i64 1 + %tmp = load volatile i64* %add.ptr, align 8 + %add.ptr1 = getelementptr inbounds i64* %bar, i64 2 + %tmp1 = load volatile i64* %add.ptr1, align 8 + %add = add nsw i64 %tmp1, %tmp + ret i64 %add +} |