; 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
}
