65 lines · plain
1# REQUIRES: loongarch2 3# RUN: llvm-mc --filetype=obj --triple=loongarch64-unknown-elf %s -o %t.la64.o4 5# RUN: ld.lld %t.la64.o --defsym foo=0 --defsym bar=42 -o %t.la64.16# RUN: llvm-objdump --no-show-raw-insn -d %t.la64.1 | FileCheck --check-prefix=CASE1 %s7# CASE1: lu12i.w $a0, 08# CASE1-NEXT: ori $a0, $a0, 09# CASE1-NEXT: lu32i.d $a0, 010# CASE1-NEXT: lu52i.d $a0, $a0, 011# CASE1-NEXT: lu12i.w $a1, 012# CASE1-NEXT: ori $a1, $a1, 4213# CASE1-NEXT: lu32i.d $a1, 014# CASE1-NEXT: lu52i.d $a1, $a1, 015 16# RUN: ld.lld %t.la64.o --defsym foo=0x12345678 --defsym bar=0x87654321 -o %t.la64.217# RUN: llvm-objdump --no-show-raw-insn -d %t.la64.2 | FileCheck --check-prefix=CASE2 %s18# CASE2: lu12i.w $a0, 7456519# CASE2-NEXT: ori $a0, $a0, 165620# CASE2-NEXT: lu32i.d $a0, 021# CASE2-NEXT: lu52i.d $a0, $a0, 022# CASE2-NEXT: lu12i.w $a1, -49399623# CASE2-NEXT: ori $a1, $a1, 80124# CASE2-NEXT: lu32i.d $a1, 025# CASE2-NEXT: lu52i.d $a1, $a1, 026 27# RUN: ld.lld %t.la64.o --defsym foo=0x12345fedcb678 --defsym bar=0xfedcb12345000 -o %t.la64.328# RUN: llvm-objdump --no-show-raw-insn -d %t.la64.3 | FileCheck --check-prefix=CASE3 %s29# CASE3: lu12i.w $a0, -466130# CASE3-NEXT: ori $a0, $a0, 165631# CASE3-NEXT: lu32i.d $a0, 7456532# CASE3-NEXT: lu52i.d $a0, $a0, 033# CASE3-NEXT: lu12i.w $a1, 7456534# CASE3-NEXT: ori $a1, $a1, 035# CASE3-NEXT: lu32i.d $a1, -466136# CASE3-NEXT: lu52i.d $a1, $a1, 037 38# RUN: ld.lld %t.la64.o --defsym foo=0xfffffeeeeeddd --defsym bar=0xfff00000f1111222 -o %t.la64.439# RUN: llvm-objdump --no-show-raw-insn -d %t.la64.4 | FileCheck --check-prefix=CASE4 %s40# CASE4: lu12i.w $a0, -6990641# CASE4-NEXT: ori $a0, $a0, 354942# CASE4-NEXT: lu32i.d $a0, -143# CASE4-NEXT: lu52i.d $a0, $a0, 044# CASE4-NEXT: lu12i.w $a1, -6116745# CASE4-NEXT: ori $a1, $a1, 54646# CASE4-NEXT: lu32i.d $a1, 047# CASE4-NEXT: lu52i.d $a1, $a1, -148 49.global _start50 51_start:521:53 lu12i.w $a0, %abs_hi20(foo)54.reloc 1b, R_LARCH_MARK_LA, foo55 ori $a0, $a0, %abs_lo12(foo)56 lu32i.d $a0, %abs64_lo20(foo)57 lu52i.d $a0, $a0, %abs64_hi12(foo)58 592:60 lu12i.w $a1, %abs_hi20(bar)61.reloc 1b, R_LARCH_MARK_LA, bar62 ori $a1, $a1, %abs_lo12(bar)63 lu32i.d $a1, %abs64_lo20(bar)64 lu52i.d $a1, $a1, %abs64_hi12(bar)65