11//@ add-core-stubs
2+ //@ revisions: loongarch32 loongarch64
3+
24//@ 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+
412//@ compile-flags: -Zmerge-functions=disabled
5- //@ needs-llvm-components: loongarch
613
714#![ feature( no_core, f16) ]
815#![ crate_type = "rlib" ]
@@ -22,7 +29,7 @@ extern "C" {
2229// CHECK-LABEL: sym_fn:
2330// CHECK: #APP
2431// 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)
2633// CHECK: #NO_APP
2734#[ no_mangle]
2835pub unsafe fn sym_fn ( ) {
@@ -32,7 +39,7 @@ pub unsafe fn sym_fn() {
3239// CHECK-LABEL: sym_static:
3340// CHECK: #APP
3441// 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)
3643// CHECK: #NO_APP
3744#[ no_mangle]
3845pub unsafe fn sym_static ( ) {
@@ -87,16 +94,18 @@ check!(reg_i32, i32, reg, "move");
8794// CHECK: #NO_APP
8895check ! ( reg_f32, f32 , reg, "move" ) ;
8996
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) ]
94102check ! ( reg_i64, i64 , reg, "move" ) ;
95103
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) ]
100109check ! ( reg_f64, f64 , reg, "move" ) ;
101110
102111// CHECK-LABEL: reg_ptr:
@@ -153,16 +162,18 @@ check_reg!(r4_i32, i32, "$r4", "move");
153162// CHECK: #NO_APP
154163check_reg ! ( r4_f32, f32 , "$r4" , "move" ) ;
155164
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) ]
160170check_reg ! ( r4_i64, i64 , "$r4" , "move" ) ;
161171
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) ]
166177check_reg ! ( r4_f64, f64 , "$r4" , "move" ) ;
167178
168179// CHECK-LABEL: r4_ptr:
0 commit comments