aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/LoongArch/merge-offset-option.ll
blob: e5351a6589cf74bb856190597d2f35dcec02e95a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
; 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
}