; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 ; RUN: llc %s -o - -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,CHECK-O2 ; RUN: llc -O3 %s -o - -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,CHECK-O3 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" target triple = "aarch64" @global0 = dso_local local_unnamed_addr global i32 0, align 4 @global1 = dso_local local_unnamed_addr global i32 0, align 4 define dso_local i32 @func() { ; CHECK-O2-LABEL: func: ; CHECK-O2: // %bb.0: // %entry ; CHECK-O2-NEXT: adrp x8, global0 ; CHECK-O2-NEXT: adrp x9, global1 ; CHECK-O2-NEXT: ldr w8, [x8, :lo12:global0] ; CHECK-O2-NEXT: ldr w9, [x9, :lo12:global1] ; CHECK-O2-NEXT: add w0, w9, w8 ; CHECK-O2-NEXT: ret ; ; CHECK-O3-LABEL: func: ; CHECK-O3: // %bb.0: // %entry ; CHECK-O3-NEXT: adrp x8, .L_MergedGlobals ; CHECK-O3-NEXT: add x8, x8, :lo12:.L_MergedGlobals ; CHECK-O3-NEXT: ldp w9, w8, [x8] ; CHECK-O3-NEXT: add w0, w8, w9 ; CHECK-O3-NEXT: ret entry: %0 = load i32, ptr @global0, align 4 %1 = load i32, ptr @global1, align 4 %add = add nsw i32 %1, %0 ret i32 %add } ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: ; CHECK: {{.*}}