1
1
//@ add-core-stubs
2
+ //@ revisions: loongarch32 loongarch64
3
+
2
4
//@ assembly-output: emit-asm
3
- //@ compile-flags: --target loongarch64-unknown-linux-gnu
5
+
6
+ //@[loongarch32] compile-flags: --target loongarch32-unknown-none
7
+ //@[loongarch32] needs-llvm-components: loongarch
8
+
9
+ //@[loongarch64] compile-flags: --target loongarch64-unknown-none
10
+ //@[loongarch64] needs-llvm-components: loongarch
11
+
4
12
//@ compile-flags: -Zmerge-functions=disabled
5
- //@ needs-llvm-components: loongarch
6
13
7
14
#![ feature( no_core, f16) ]
8
15
#![ crate_type = "rlib" ]
@@ -22,7 +29,7 @@ extern "C" {
22
29
// CHECK-LABEL: sym_fn:
23
30
// CHECK: #APP
24
31
// CHECK: pcalau12i $t0, %got_pc_hi20(extern_func)
25
- // CHECK: ld.d $t0, $t0, %got_pc_lo12(extern_func)
32
+ // CHECK: ld.{{[wd]}} $t0, $t0, %got_pc_lo12(extern_func)
26
33
// CHECK: #NO_APP
27
34
#[ no_mangle]
28
35
pub unsafe fn sym_fn ( ) {
@@ -32,7 +39,7 @@ pub unsafe fn sym_fn() {
32
39
// CHECK-LABEL: sym_static:
33
40
// CHECK: #APP
34
41
// CHECK: pcalau12i $t0, %got_pc_hi20(extern_static)
35
- // CHECK: ld.d $t0, $t0, %got_pc_lo12(extern_static)
42
+ // CHECK: ld.{{[wd]}} $t0, $t0, %got_pc_lo12(extern_static)
36
43
// CHECK: #NO_APP
37
44
#[ no_mangle]
38
45
pub unsafe fn sym_static ( ) {
@@ -87,16 +94,18 @@ check!(reg_i32, i32, reg, "move");
87
94
// CHECK: #NO_APP
88
95
check ! ( reg_f32, f32 , reg, "move" ) ;
89
96
90
- // CHECK-LABEL: reg_i64:
91
- // CHECK: #APP
92
- // CHECK: move ${{[a-z0-9]+}}, ${{[a-z0-9]+}}
93
- // CHECK: #NO_APP
97
+ // loongarch64-LABEL: reg_i64:
98
+ // loongarch64: #APP
99
+ // loongarch64: move ${{[a-z0-9]+}}, ${{[a-z0-9]+}}
100
+ // loongarch64: #NO_APP
101
+ #[ cfg( loongarch64) ]
94
102
check ! ( reg_i64, i64 , reg, "move" ) ;
95
103
96
- // CHECK-LABEL: reg_f64:
97
- // CHECK: #APP
98
- // CHECK: move ${{[a-z0-9]+}}, ${{[a-z0-9]+}}
99
- // CHECK: #NO_APP
104
+ // loongarch64-LABEL: reg_f64:
105
+ // loongarch64: #APP
106
+ // loongarch64: move ${{[a-z0-9]+}}, ${{[a-z0-9]+}}
107
+ // loongarch64: #NO_APP
108
+ #[ cfg( loongarch64) ]
100
109
check ! ( reg_f64, f64 , reg, "move" ) ;
101
110
102
111
// CHECK-LABEL: reg_ptr:
@@ -153,16 +162,18 @@ check_reg!(r4_i32, i32, "$r4", "move");
153
162
// CHECK: #NO_APP
154
163
check_reg ! ( r4_f32, f32 , "$r4" , "move" ) ;
155
164
156
- // CHECK-LABEL: r4_i64:
157
- // CHECK: #APP
158
- // CHECK: move $a0, $a0
159
- // CHECK: #NO_APP
165
+ // loongarch64-LABEL: r4_i64:
166
+ // loongarch64: #APP
167
+ // loongarch64: move $a0, $a0
168
+ // loongarch64: #NO_APP
169
+ #[ cfg( loongarch64) ]
160
170
check_reg ! ( r4_i64, i64 , "$r4" , "move" ) ;
161
171
162
- // CHECK-LABEL: r4_f64:
163
- // CHECK: #APP
164
- // CHECK: move $a0, $a0
165
- // CHECK: #NO_APP
172
+ // loongarch64-LABEL: r4_f64:
173
+ // loongarch64: #APP
174
+ // loongarch64: move $a0, $a0
175
+ // loongarch64: #NO_APP
176
+ #[ cfg( loongarch64) ]
166
177
check_reg ! ( r4_f64, f64 , "$r4" , "move" ) ;
167
178
168
179
// CHECK-LABEL: r4_ptr:
0 commit comments