; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc --mtriple=loongarch64 -mattr=+d --relocation-model=static -O1 \ ; RUN: < %s | FileCheck %s --check-prefix=MERGE ; RUN: llc --mtriple=loongarch64 -mattr=+d --relocation-model=static -O1 \ ; RUN: --loongarch-enable-merge-offset=false < %s | FileCheck %s --check-prefix=NO_MERGE @g = dso_local global i32 zeroinitializer, align 4 define void @foo() nounwind { ; MERGE-LABEL: foo: ; MERGE: # %bb.0: ; MERGE-NEXT: pcalau12i $a0, %pc_hi20(g) ; MERGE-NEXT: ld.w $zero, $a0, %pc_lo12(g) ; MERGE-NEXT: ret ; ; NO_MERGE-LABEL: foo: ; NO_MERGE: # %bb.0: ; NO_MERGE-NEXT: pcalau12i $a0, %pc_hi20(g) ; NO_MERGE-NEXT: addi.d $a0, $a0, %pc_lo12(g) ; NO_MERGE-NEXT: ld.w $zero, $a0, 0 ; NO_MERGE-NEXT: ret %v = load volatile i32, ptr @g ret void }