| Tim Northover | 00ed996 | 2014-03-29 10:18:08 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=arm64 | FileCheck %s |
| 2 | define i64 @normal_load(i64* nocapture %bar) nounwind readonly { |
| 3 | ; CHECK: normal_load |
| 4 | ; CHECK: ldp |
| 5 | ; CHECK-NEXT: add |
| 6 | ; CHECK-NEXT: ret |
| David Blaikie | 79e6c74 | 2015-02-27 19:29:02 +0000 | [diff] [blame] | 7 | %add.ptr = getelementptr inbounds i64, i64* %bar, i64 1 |
| David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 8 | %tmp = load i64, i64* %add.ptr, align 8 |
| David Blaikie | 79e6c74 | 2015-02-27 19:29:02 +0000 | [diff] [blame] | 9 | %add.ptr1 = getelementptr inbounds i64, i64* %bar, i64 2 |
| David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 10 | %tmp1 = load i64, i64* %add.ptr1, align 8 |
| Tim Northover | 00ed996 | 2014-03-29 10:18:08 +0000 | [diff] [blame] | 11 | %add = add nsw i64 %tmp1, %tmp |
| 12 | ret i64 %add |
| 13 | } |
| 14 | |
| 15 | define i64 @volatile_load(i64* nocapture %bar) nounwind { |
| 16 | ; CHECK: volatile_load |
| 17 | ; CHECK: ldr |
| 18 | ; CHECK-NEXT: ldr |
| 19 | ; CHECK-NEXT: add |
| 20 | ; CHECK-NEXT: ret |
| David Blaikie | 79e6c74 | 2015-02-27 19:29:02 +0000 | [diff] [blame] | 21 | %add.ptr = getelementptr inbounds i64, i64* %bar, i64 1 |
| David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 22 | %tmp = load volatile i64, i64* %add.ptr, align 8 |
| David Blaikie | 79e6c74 | 2015-02-27 19:29:02 +0000 | [diff] [blame] | 23 | %add.ptr1 = getelementptr inbounds i64, i64* %bar, i64 2 |
| David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 24 | %tmp1 = load volatile i64, i64* %add.ptr1, align 8 |
| Tim Northover | 00ed996 | 2014-03-29 10:18:08 +0000 | [diff] [blame] | 25 | %add = add nsw i64 %tmp1, %tmp |
| 26 | ret i64 %add |
| 27 | } |