Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / RISCV / tagged-globals.ll
blob2786b604943e0dfd0b1a9dd9e4cd0a50e5019076
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no-generate-body-for-unused-prefixes
2 ; RUN: llc -mtriple=riscv64 --relocation-model=pic < %s | FileCheck %s
3 ; RUN: llc -mtriple=riscv64 --relocation-model=static < %s | FileCheck %s
5 @global_ext = external global i32
6 @global_int = internal global i32 0
7 declare void @func()
9 define ptr @global_addr() #0 {
10 ; CHECK-LABEL: global_addr:
11 ; CHECK:       # %bb.0:
12 ; CHECK-NEXT:  .Lpcrel_hi0:
13 ; CHECK-NEXT:    auipc a0, %got_pcrel_hi(global_ext)
14 ; CHECK-NEXT:    ld a0, %pcrel_lo(.Lpcrel_hi0)(a0)
15 ; CHECK-NEXT:    ret
16   ret ptr @global_ext
19 define i32 @global_load() #0 {
20 ; CHECK-LABEL: global_load:
21 ; CHECK:       # %bb.0:
22 ; CHECK-NEXT:  .Lpcrel_hi1:
23 ; CHECK-NEXT:    auipc a0, %got_pcrel_hi(global_ext)
24 ; CHECK-NEXT:    ld a0, %pcrel_lo(.Lpcrel_hi1)(a0)
25 ; CHECK-NEXT:    lw a0, 0(a0)
26 ; CHECK-NEXT:    ret
27   %load = load i32, ptr @global_ext
28   ret i32 %load
31 define void @global_store() #0 {
32 ; CHECK-LABEL: global_store:
33 ; CHECK:       # %bb.0:
34 ; CHECK-NEXT:  .Lpcrel_hi2:
35 ; CHECK-NEXT:    auipc a0, %got_pcrel_hi(global_ext)
36 ; CHECK-NEXT:    ld a0, %pcrel_lo(.Lpcrel_hi2)(a0)
37 ; CHECK-NEXT:    sw zero, 0(a0)
38 ; CHECK-NEXT:    ret
39   store i32 0, ptr @global_ext
40   ret void
43 define ptr @global_int_addr() #0 {
44 ; CHECK-LABEL: global_int_addr:
45 ; CHECK:       # %bb.0:
46 ; CHECK-NEXT:  .Lpcrel_hi3:
47 ; CHECK-NEXT:    auipc a0, %got_pcrel_hi(global_int)
48 ; CHECK-NEXT:    ld a0, %pcrel_lo(.Lpcrel_hi3)(a0)
49 ; CHECK-NEXT:    ret
50   ret ptr @global_int
53 define i32 @global_int_load() #0 {
54 ; CHECK-LABEL: global_int_load:
55 ; CHECK:       # %bb.0:
56 ; CHECK-NEXT:  .Lpcrel_hi4:
57 ; CHECK-NEXT:    auipc a0, %got_pcrel_hi(global_int)
58 ; CHECK-NEXT:    ld a0, %pcrel_lo(.Lpcrel_hi4)(a0)
59 ; CHECK-NEXT:    lw a0, 0(a0)
60 ; CHECK-NEXT:    ret
61   %load = load i32, ptr @global_int
62   ret i32 %load
65 define void @global_int_store() #0 {
66 ; CHECK-LABEL: global_int_store:
67 ; CHECK:       # %bb.0:
68 ; CHECK-NEXT:  .Lpcrel_hi5:
69 ; CHECK-NEXT:    auipc a0, %got_pcrel_hi(global_int)
70 ; CHECK-NEXT:    ld a0, %pcrel_lo(.Lpcrel_hi5)(a0)
71 ; CHECK-NEXT:    sw zero, 0(a0)
72 ; CHECK-NEXT:    ret
73   store i32 0, ptr @global_int
74   ret void
77 define ptr @func_addr() #0 {
78 ; CHECK-LABEL: func_addr:
79 ; CHECK:       # %bb.0:
80 ; CHECK-NEXT:  .Lpcrel_hi6:
81 ; CHECK-NEXT:    auipc a0, %got_pcrel_hi(func)
82 ; CHECK-NEXT:    ld a0, %pcrel_lo(.Lpcrel_hi6)(a0)
83 ; CHECK-NEXT:    ret
84   ret ptr @func
87 attributes #0 = { "target-features"="+tagged-globals" }