1; RUN: llc < %s -mtriple=arm64-eabi | FileCheck %s 2define i64 @normal_load(i64* nocapture %bar) nounwind readonly { 3; CHECK: normal_load 4; CHECK: ldp 5; CHECK-NEXT: add 6; CHECK-NEXT: ret 7 %add.ptr = getelementptr inbounds i64, i64* %bar, i64 1 8 %tmp = load i64, i64* %add.ptr, align 8 9 %add.ptr1 = getelementptr inbounds i64, i64* %bar, i64 2 10 %tmp1 = load i64, i64* %add.ptr1, align 8 11 %add = add nsw i64 %tmp1, %tmp 12 ret i64 %add 13} 14 15define 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 21 %add.ptr = getelementptr inbounds i64, i64* %bar, i64 1 22 %tmp = load volatile i64, i64* %add.ptr, align 8 23 %add.ptr1 = getelementptr inbounds i64, i64* %bar, i64 2 24 %tmp1 = load volatile i64, i64* %add.ptr1, align 8 25 %add = add nsw i64 %tmp1, %tmp 26 ret i64 %add 27} 28