1 # RUN: llvm-mc %s -triple=riscv32 | FileCheck %s --check-prefixes=CHECK,CHECK-NOPIC
2 # RUN: llvm-mc %s -triple=riscv64 | FileCheck %s --check-prefixes=CHECK,CHECK-NOPIC
3 # RUN: llvm-mc %s -triple=riscv32 -position-independent \
4 # RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-PIC,CHECK-PIC-RV32
5 # RUN: llvm-mc %s -triple=riscv64 -position-independent \
6 # RUN: | FileCheck %s --check-prefixes=CHECK,CHECK-PIC,CHECK-PIC-RV64
9 # CHECK: auipc a0, %pcrel_hi(a_symbol)
10 # CHECK: addi a0, a0, %pcrel_lo(.Lpcrel_hi0)
14 # CHECK: auipc a1, %pcrel_hi(another_symbol)
15 # CHECK: addi a1, a1, %pcrel_lo(.Lpcrel_hi1)
16 lla a1
, another_symbol
18 # Check that we can load the address of symbols that are spelled like a register
20 # CHECK: auipc a2, %pcrel_hi(zero)
21 # CHECK: addi a2, a2, %pcrel_lo(.Lpcrel_hi2)
25 # CHECK: auipc a3, %pcrel_hi(ra)
26 # CHECK: addi a3, a3, %pcrel_lo(.Lpcrel_hi3)
30 # CHECK: auipc a4, %pcrel_hi(f1)
31 # CHECK: addi a4, a4, %pcrel_lo(.Lpcrel_hi4)
35 # CHECK-NOPIC: auipc a0, %pcrel_hi(a_symbol)
36 # CHECK-NOPIC: addi a0, a0, %pcrel_lo(.Lpcrel_hi5)
37 # CHECK-PIC: auipc a0, %got_pcrel_hi(a_symbol)
38 # CHECK-PIC-RV32: lw a0, %pcrel_lo(.Lpcrel_hi5)(a0)
39 # CHECK-PIC-RV64: ld a0, %pcrel_lo(.Lpcrel_hi5)(a0)
43 # CHECK-NOPIC: auipc a1, %pcrel_hi(another_symbol)
44 # CHECK-NOPIC: addi a1, a1, %pcrel_lo(.Lpcrel_hi6)
45 # CHECK-PIC: auipc a1, %got_pcrel_hi(another_symbol)
46 # CHECK-PIC-RV32: lw a1, %pcrel_lo(.Lpcrel_hi6)(a1)
47 # CHECK-PIC-RV64: ld a1, %pcrel_lo(.Lpcrel_hi6)(a1)
50 # Check that we can load the address of symbols that are spelled like a register
52 # CHECK-NOPIC: auipc a2, %pcrel_hi(zero)
53 # CHECK-NOPIC: addi a2, a2, %pcrel_lo(.Lpcrel_hi7)
54 # CHECK-PIC: auipc a2, %got_pcrel_hi(zero)
55 # CHECK-PIC-RV32: lw a2, %pcrel_lo(.Lpcrel_hi7)(a2)
56 # CHECK-PIC-RV64: ld a2, %pcrel_lo(.Lpcrel_hi7)(a2)
60 # CHECK-NOPIC: auipc a3, %pcrel_hi(ra)
61 # CHECK-NOPIC: addi a3, a3, %pcrel_lo(.Lpcrel_hi8)
62 # CHECK-PIC: auipc a3, %got_pcrel_hi(ra)
63 # CHECK-PIC-RV32: lw a3, %pcrel_lo(.Lpcrel_hi8)(a3)
64 # CHECK-PIC-RV64: ld a3, %pcrel_lo(.Lpcrel_hi8)(a3)
68 # CHECK-NOPIC: auipc a4, %pcrel_hi(f1)
69 # CHECK-NOPIC: addi a4, a4, %pcrel_lo(.Lpcrel_hi9)
70 # CHECK-PIC: auipc a4, %got_pcrel_hi(f1)
71 # CHECK-PIC-RV32: lw a4, %pcrel_lo(.Lpcrel_hi9)(a4)
72 # CHECK-PIC-RV64: ld a4, %pcrel_lo(.Lpcrel_hi9)(a4)