Skip to content

Commit 32808a3

Browse files
committed
Update tests due to #72960 merged and address @SixWeining's comments.
1, update relax-addsub test to check `la.pcrel` RELAX. 2, update subsection test to check RELAX. 3, add check reloc start/end flags. 4, change non-first CHECK to CHECK-NEXT and add CHECK-EMPTY.
1 parent 607c7e7 commit 32808a3

File tree

3 files changed

+54
-28
lines changed

3 files changed

+54
-28
lines changed

llvm/test/MC/LoongArch/Macros/macros-la.s

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,107 +4,125 @@
44
# RUN: llvm-mc --filetype=obj --triple=loongarch64 --mattr=+relax %s -o %t.relax
55
# RUN: llvm-readobj -r %t.relax | FileCheck %s --check-prefixes=RELOC,RELAX
66

7+
# RELOC: Relocations [
8+
# RELOC-NEXT: Section ({{.*}}) .rela.text {
9+
710
la.abs $a0, sym_abs
811
# CHECK: lu12i.w $a0, %abs_hi20(sym_abs)
912
# CHECK-NEXT: ori $a0, $a0, %abs_lo12(sym_abs)
1013
# CHECK-NEXT: lu32i.d $a0, %abs64_lo20(sym_abs)
1114
# CHECK-NEXT: lu52i.d $a0, $a0, %abs64_hi12(sym_abs)
12-
# RELOC: R_LARCH_ABS_HI20 sym_abs 0x0
15+
# CHECK-EMPTY:
16+
# RELOC-NEXT: R_LARCH_ABS_HI20 sym_abs 0x0
1317
# RELOC-NEXT: R_LARCH_ABS_LO12 sym_abs 0x0
1418
# RELOC-NEXT: R_LARCH_ABS64_LO20 sym_abs 0x0
1519
# RELOC-NEXT: R_LARCH_ABS64_HI12 sym_abs 0x0
1620

1721
la.pcrel $a0, sym_pcrel
18-
# CHECK: pcalau12i $a0, %pc_hi20(sym_pcrel)
22+
# CHECK-NEXT: pcalau12i $a0, %pc_hi20(sym_pcrel)
1923
# CHECK-NEXT: addi.d $a0, $a0, %pc_lo12(sym_pcrel)
20-
# RELOC: R_LARCH_PCALA_HI20 sym_pcrel 0x0
24+
# CHECK-EMPTY:
25+
# RELOC-NEXT: R_LARCH_PCALA_HI20 sym_pcrel 0x0
2126
# RELAX-NEXT: R_LARCH_RELAX - 0x0
2227
# RELOC-NEXT: R_LARCH_PCALA_LO12 sym_pcrel 0x0
2328
# RELAX-NEXT: R_LARCH_RELAX - 0x0
2429

2530
la.pcrel $a0, $a1, sym_pcrel_large
26-
# CHECK: pcalau12i $a0, %pc_hi20(sym_pcrel_large)
31+
# CHECK-NEXT: pcalau12i $a0, %pc_hi20(sym_pcrel_large)
2732
# CHECK-NEXT: addi.d $a1, $zero, %pc_lo12(sym_pcrel_large)
2833
# CHECK-NEXT: lu32i.d $a1, %pc64_lo20(sym_pcrel_large)
2934
# CHECK-NEXT: lu52i.d $a1, $a1, %pc64_hi12(sym_pcrel_large)
3035
# CHECK-NEXT: add.d $a0, $a0, $a1
31-
# RELOC: R_LARCH_PCALA_HI20 sym_pcrel_large 0x0
36+
# CHECK-EMPTY:
37+
# RELOC-NEXT: R_LARCH_PCALA_HI20 sym_pcrel_large 0x0
3238
# RELOC-NEXT: R_LARCH_PCALA_LO12 sym_pcrel_large 0x0
3339
# RELOC-NEXT: R_LARCH_PCALA64_LO20 sym_pcrel_large 0x0
3440
# RELOC-NEXT: R_LARCH_PCALA64_HI12 sym_pcrel_large 0x0
3541

3642
la.got $a0, sym_got
37-
# CHECK: pcalau12i $a0, %got_pc_hi20(sym_got)
43+
# CHECK-NEXT: pcalau12i $a0, %got_pc_hi20(sym_got)
3844
# CHECK-NEXT: ld.d $a0, $a0, %got_pc_lo12(sym_got)
39-
# RELOC: R_LARCH_GOT_PC_HI20 sym_got 0x0
45+
# CHECK-EMPTY:
46+
# RELOC-NEXT: R_LARCH_GOT_PC_HI20 sym_got 0x0
4047
# RELAX-NEXT: R_LARCH_RELAX - 0x0
4148
# RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym_got 0x0
4249
# RELAX-NEXT: R_LARCH_RELAX - 0x0
4350

4451
la.got $a0, $a1, sym_got_large
45-
# CHECK: pcalau12i $a0, %got_pc_hi20(sym_got_large)
52+
# CHECK-NEXT: pcalau12i $a0, %got_pc_hi20(sym_got_large)
4653
# CHECK-NEXT: addi.d $a1, $zero, %got_pc_lo12(sym_got_large)
4754
# CHECK-NEXT: lu32i.d $a1, %got64_pc_lo20(sym_got_large)
4855
# CHECK-NEXT: lu52i.d $a1, $a1, %got64_pc_hi12(sym_got_large)
4956
# CHECK-NEXT: ldx.d $a0, $a0, $a1
50-
# RELOC: R_LARCH_GOT_PC_HI20 sym_got_large 0x0
57+
# CHECK-EMPTY:
58+
# RELOC-NEXT: R_LARCH_GOT_PC_HI20 sym_got_large 0x0
5159
# RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym_got_large 0x0
5260
# RELOC-NEXT: R_LARCH_GOT64_PC_LO20 sym_got_large 0x0
5361
# RELOC-NEXT: R_LARCH_GOT64_PC_HI12 sym_got_large 0x0
5462

5563
la.tls.le $a0, sym_le
56-
# CHECK: lu12i.w $a0, %le_hi20(sym_le)
64+
# CHECK-NEXT: lu12i.w $a0, %le_hi20(sym_le)
5765
# CHECK-NEXT: ori $a0, $a0, %le_lo12(sym_le)
58-
# RELOC: R_LARCH_TLS_LE_HI20 sym_le 0x0
66+
# CHECK-EMPTY:
67+
# RELOC-NEXT: R_LARCH_TLS_LE_HI20 sym_le 0x0
5968
# RELOC-NEXT: R_LARCH_TLS_LE_LO12 sym_le 0x0
6069

6170
la.tls.ie $a0, sym_ie
62-
# CHECK: pcalau12i $a0, %ie_pc_hi20(sym_ie)
71+
# CHECK-NEXT: pcalau12i $a0, %ie_pc_hi20(sym_ie)
6372
# CHECK-NEXT: ld.d $a0, $a0, %ie_pc_lo12(sym_ie)
64-
# RELOC: R_LARCH_TLS_IE_PC_HI20 sym_ie 0x0
73+
# CHECK-EMPTY:
74+
# RELOC-NEXT: R_LARCH_TLS_IE_PC_HI20 sym_ie 0x0
6575
# RELOC-NEXT: R_LARCH_TLS_IE_PC_LO12 sym_ie 0x0
6676

6777
la.tls.ie $a0, $a1, sym_ie_large
68-
# CHECK: pcalau12i $a0, %ie_pc_hi20(sym_ie_large)
78+
# CHECK-NEXT: pcalau12i $a0, %ie_pc_hi20(sym_ie_large)
6979
# CHECK-NEXT: addi.d $a1, $zero, %ie_pc_lo12(sym_ie_large)
7080
# CHECK-NEXT: lu32i.d $a1, %ie64_pc_lo20(sym_ie_large)
7181
# CHECK-NEXT: lu52i.d $a1, $a1, %ie64_pc_hi12(sym_ie_large)
7282
# CHECK-NEXT: ldx.d $a0, $a0, $a1
73-
# RELOC: R_LARCH_TLS_IE_PC_HI20 sym_ie_large 0x0
83+
# CHECK-EMPTY:
84+
# RELOC-NEXT: R_LARCH_TLS_IE_PC_HI20 sym_ie_large 0x0
7485
# RELOC-NEXT: R_LARCH_TLS_IE_PC_LO12 sym_ie_large 0x0
7586
# RELOC-NEXT: R_LARCH_TLS_IE64_PC_LO20 sym_ie_large 0x0
7687
# RELOC-NEXT: R_LARCH_TLS_IE64_PC_HI12 sym_ie_large 0x0
7788

7889
la.tls.ld $a0, sym_ld
79-
# CHECK: pcalau12i $a0, %ld_pc_hi20(sym_ld)
90+
# CHECK-NEXT: pcalau12i $a0, %ld_pc_hi20(sym_ld)
8091
# CHECK-NEXT: addi.d $a0, $a0, %got_pc_lo12(sym_ld)
81-
# RELOC: R_LARCH_TLS_LD_PC_HI20 sym_ld 0x0
92+
# CHECK-EMPTY:
93+
# RELOC-NEXT: R_LARCH_TLS_LD_PC_HI20 sym_ld 0x0
8294
# RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym_ld 0x0
8395

8496
la.tls.ld $a0, $a1, sym_ld_large
85-
# CHECK: pcalau12i $a0, %ld_pc_hi20(sym_ld_large)
97+
# CHECK-NEXT: pcalau12i $a0, %ld_pc_hi20(sym_ld_large)
8698
# CHECK-NEXT: addi.d $a1, $zero, %got_pc_lo12(sym_ld_large)
8799
# CHECK-NEXT: lu32i.d $a1, %got64_pc_lo20(sym_ld_large)
88100
# CHECK-NEXT: lu52i.d $a1, $a1, %got64_pc_hi12(sym_ld_large)
89101
# CHECK-NEXT: add.d $a0, $a0, $a1
90-
# RELOC: R_LARCH_TLS_LD_PC_HI20 sym_ld_large 0x0
102+
# CHECK-EMPTY:
103+
# RELOC-NEXT: R_LARCH_TLS_LD_PC_HI20 sym_ld_large 0x0
91104
# RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym_ld_large 0x0
92105
# RELOC-NEXT: R_LARCH_GOT64_PC_LO20 sym_ld_large 0x0
93106
# RELOC-NEXT: R_LARCH_GOT64_PC_HI12 sym_ld_large 0x0
94107

95108
la.tls.gd $a0, sym_gd
96-
# CHECK: pcalau12i $a0, %gd_pc_hi20(sym_gd)
109+
# CHECK-NEXT: pcalau12i $a0, %gd_pc_hi20(sym_gd)
97110
# CHECK-NEXT: addi.d $a0, $a0, %got_pc_lo12(sym_gd)
98-
# RELOC: R_LARCH_TLS_GD_PC_HI20 sym_gd 0x0
111+
# CHECK-EMPTY:
112+
# RELOC-NEXT: R_LARCH_TLS_GD_PC_HI20 sym_gd 0x0
99113
# RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym_gd 0x0
100114

101115
la.tls.gd $a0, $a1, sym_gd_large
102-
# CHECK: pcalau12i $a0, %gd_pc_hi20(sym_gd_large)
116+
# CHECK-NEXT: pcalau12i $a0, %gd_pc_hi20(sym_gd_large)
103117
# CHECK-NEXT: addi.d $a1, $zero, %got_pc_lo12(sym_gd_large)
104118
# CHECK-NEXT: lu32i.d $a1, %got64_pc_lo20(sym_gd_large)
105119
# CHECK-NEXT: lu52i.d $a1, $a1, %got64_pc_hi12(sym_gd_large)
106120
# CHECK-NEXT: add.d $a0, $a0, $a1
107-
# RELOC: R_LARCH_TLS_GD_PC_HI20 sym_gd_large 0x0
121+
# CHECK-EMPTY:
122+
# RELOC-NEXT: R_LARCH_TLS_GD_PC_HI20 sym_gd_large 0x0
108123
# RELOC-NEXT: R_LARCH_GOT_PC_LO12 sym_gd_large 0x0
109124
# RELOC-NEXT: R_LARCH_GOT64_PC_LO20 sym_gd_large 0x0
110125
# RELOC-NEXT: R_LARCH_GOT64_PC_HI12 sym_gd_large 0x0
126+
127+
# RELOC-NEXT: }
128+
# RELOC-NEXT: ]

llvm/test/MC/LoongArch/Misc/subsection.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# RUN: not llvm-mc --filetype=obj --triple=loongarch64 --mattr=-relax %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=ERR,NORELAX --implicit-check-not=error:
2-
## TODO: not llvm-mc --filetype=obj --triple=loongarch64 --mattr=+relax %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=ERR,RELAX --implicit-check-not=error:
2+
# RUN: not llvm-mc --filetype=obj --triple=loongarch64 --mattr=+relax %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=ERR,RELAX --implicit-check-not=error:
33

44
a:
55
nop

llvm/test/MC/LoongArch/Relocations/relax-addsub.s

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
# RELAX: Relocations [
1919
# RELAX-NEXT: Section ({{.*}}) .rela.text {
2020
# RELAX-NEXT: 0x10 R_LARCH_PCALA_HI20 .L1 0x0
21+
# RELAX-NEXT: 0x10 R_LARCH_RELAX - 0x0
2122
# RELAX-NEXT: 0x14 R_LARCH_PCALA_LO12 .L1 0x0
23+
# RELAX-NEXT: 0x14 R_LARCH_RELAX - 0x0
2224
# RELAX-NEXT: }
2325
# RELAX-NEXT: Section ({{.*}}) .rela.data {
2426
# RELAX-NEXT: 0xF R_LARCH_ADD8 .L3 0x0
@@ -29,13 +31,21 @@
2931
# RELAX-NEXT: 0x12 R_LARCH_SUB32 .L2 0x0
3032
# RELAX-NEXT: 0x16 R_LARCH_ADD64 .L3 0x0
3133
# RELAX-NEXT: 0x16 R_LARCH_SUB64 .L2 0x0
34+
# RELAX-NEXT: 0x1E R_LARCH_ADD8 .L4 0x0
35+
# RELAX-NEXT: 0x1E R_LARCH_SUB8 .L3 0x0
36+
# RELAX-NEXT: 0x1F R_LARCH_ADD16 .L4 0x0
37+
# RELAX-NEXT: 0x1F R_LARCH_SUB16 .L3 0x0
38+
# RELAX-NEXT: 0x21 R_LARCH_ADD32 .L4 0x0
39+
# RELAX-NEXT: 0x21 R_LARCH_SUB32 .L3 0x0
40+
# RELAX-NEXT: 0x25 R_LARCH_ADD64 .L4 0x0
41+
# RELAX-NEXT: 0x25 R_LARCH_SUB64 .L3 0x0
3242
# RELAX-NEXT: }
3343
# RELAX-NEXT: ]
3444

3545
# RELAX: Hex dump of section '.data':
3646
# RELAX-NEXT: 0x00000000 04040004 00000004 00000000 00000000
37-
# RELAX-NEXT: 0x00000010 00000000 00000000 00000000 00000808
38-
# RELAX-NEXT: 0x00000020 00080000 00080000 00000000 00
47+
# RELAX-NEXT: 0x00000010 00000000 00000000 00000000 00000000
48+
# RELAX-NEXT: 0x00000020 00000000 00000000 00000000 00
3949

4050
.text
4151
.L1:
@@ -60,8 +70,6 @@
6070
.short .L3 - .L2
6171
.word .L3 - .L2
6272
.dword .L3 - .L2
63-
## TODO
64-
## With relaxation, emit relocs because la.pcrel is a linker-relaxable inst.
6573
.byte .L4 - .L3
6674
.short .L4 - .L3
6775
.word .L4 - .L3

0 commit comments

Comments
 (0)