|
1 | 1 | # REQUIRES: loongarch
|
2 | 2 |
|
3 | 3 | # RUN: llvm-mc --filetype=obj --triple=loongarch32 --defsym ELF32=1 %s -o %t.32.o
|
| 4 | +# RUN: llvm-mc --filetype=obj --triple=loongarch32 --defsym ELF32=1 -mattr=+relax %s -o %t.32.relax.o |
4 | 5 | # RUN: llvm-mc --filetype=obj --triple=loongarch64 %s -o %t.64.o
|
| 6 | +# RUN: llvm-mc --filetype=obj --triple=loongarch64 -mattr=+relax %s -o %t.64.relax.o |
5 | 7 |
|
6 | 8 | # RUN: ld.lld %t.32.o -o %t.32
|
7 | 9 | # RUN: llvm-nm -p %t.32 | FileCheck --check-prefixes=NM %s
|
8 | 10 | # RUN: llvm-objdump -d --no-show-raw-insn %t.32 | FileCheck --check-prefixes=LE,LE32 %s
|
| 11 | +# RUN: ld.lld %t.32.relax.o -o %t.32.relax |
| 12 | +# RUN: llvm-objdump -d --no-show-raw-insn %t.32.relax | FileCheck --check-prefixes=LE,LE32-RELAX %s |
9 | 13 |
|
10 | 14 | # RUN: ld.lld %t.64.o -o %t.64
|
11 | 15 | # RUN: llvm-objdump -d --no-show-raw-insn %t.64 | FileCheck --check-prefixes=LE,LE64 %s
|
| 16 | +# RUN: ld.lld %t.64.relax.o -o %t.64.relax |
| 17 | +# RUN: llvm-objdump -d --no-show-raw-insn %t.64.relax | FileCheck --check-prefixes=LE,LE64-RELAX %s |
12 | 18 |
|
13 | 19 | # RUN: not ld.lld -shared %t.32.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=ERR --implicit-check-not=error:
|
14 | 20 |
|
|
37 | 43 | # LE32-NEXT: add.w $a0, $a0, $tp
|
38 | 44 | # LE32-NEXT: addi.w $a0, $a0, -2048
|
39 | 45 |
|
| 46 | +# LE32-RELAX: addi.w $a0, $tp, 8 |
| 47 | +# LE32-RELAX-NEXT: lu12i.w $a0, 1 |
| 48 | +# LE32-RELAX-NEXT: add.w $a0, $a0, $tp |
| 49 | +# LE32-RELAX-NEXT: addi.w $a0, $a0, -2048 |
| 50 | + |
40 | 51 | # LE64: add.d $a0, $a0, $tp
|
41 | 52 | # LE64-NEXT: addi.d $a0, $a0, 8
|
42 | 53 | # LE64-NEXT: lu12i.w $a0, 1
|
43 | 54 | # LE64-NEXT: add.d $a0, $a0, $tp
|
44 | 55 | # LE64-NEXT: addi.d $a0, $a0, -2048
|
45 | 56 |
|
| 57 | +# LE64-RELAX: addi.d $a0, $tp, 8 |
| 58 | +# LE64-RELAX-NEXT: lu12i.w $a0, 1 |
| 59 | +# LE64-RELAX-NEXT: add.d $a0, $a0, $tp |
| 60 | +# LE64-RELAX-NEXT: addi.d $a0, $a0, -2048 |
| 61 | + |
46 | 62 | # LE-EMPTY:
|
47 | 63 |
|
48 | 64 | .macro add dst, src1, src2, src3
|
|
0 commit comments