11//@ add-minicore
2- //@ revisions: s390x s390x_vector
2+ //@ revisions: s390x s390x_vector s390x_nnp_assist
33//@ assembly-output: emit-asm
44//@[s390x] compile-flags: --target s390x-unknown-linux-gnu
55//@[s390x] needs-llvm-components: systemz
66//@[s390x_vector] compile-flags: --target s390x-unknown-linux-gnu -C target-feature=+vector
77//@[s390x_vector] needs-llvm-components: systemz
8+ //@[s390x_nnp_assist] compile-flags: --target s390x-unknown-linux-gnu -C target-feature=+nnp-assist --cfg=s390x_vector
9+ //@[s390x_nnp_assist] needs-llvm-components: systemz
810//@ compile-flags: -Zmerge-functions=disabled
911
10- #![ feature( no_core, repr_simd, f128) ]
12+ #![ feature( no_core, repr_simd, f16 , f128) ]
1113#![ cfg_attr( s390x_vector, feature( asm_experimental_reg) ) ]
1214#![ crate_type = "rlib" ]
1315#![ no_core]
@@ -27,6 +29,8 @@ pub struct i32x4([i32; 4]);
2729#[ repr( simd) ]
2830pub struct i64x2 ( [ i64 ; 2 ] ) ;
2931#[ repr( simd) ]
32+ pub struct f16x8 ( [ f16 ; 8 ] ) ;
33+ #[ repr( simd) ]
3034pub struct f32x4 ( [ f32 ; 4 ] ) ;
3135#[ repr( simd) ]
3236pub struct f64x2 ( [ f64 ; 2 ] ) ;
@@ -35,6 +39,7 @@ impl Copy for i8x16 {}
3539impl Copy for i16x8 { }
3640impl Copy for i32x4 { }
3741impl Copy for i64x2 { }
42+ impl Copy for f16x8 { }
3843impl Copy for f32x4 { }
3944impl Copy for f64x2 { }
4045
@@ -173,6 +178,13 @@ check!(vreg_i32x4, i32x4, vreg, "vlr");
173178#[ cfg( s390x_vector) ]
174179check ! ( vreg_i64x2, i64x2, vreg, "vlr" ) ;
175180
181+ // s390x_vector-LABEL: vreg_f16x8:
182+ // s390x_vector: #APP
183+ // s390x_vector: vlr %v{{[0-9]+}}, %v{{[0-9]+}}
184+ // s390x_vector: #NO_APP
185+ #[ cfg( s390x_vector) ]
186+ check ! ( vreg_f16x8, f16x8, vreg, "vlr" ) ;
187+
176188// s390x_vector-LABEL: vreg_f32x4:
177189// s390x_vector: #APP
178190// s390x_vector: vlr %v{{[0-9]+}}, %v{{[0-9]+}}
@@ -293,6 +305,13 @@ check_reg!(v0_i32x4, i32x4, "v0", "vlr");
293305#[ cfg( s390x_vector) ]
294306check_reg ! ( v0_i64x2, i64x2, "v0" , "vlr" ) ;
295307
308+ // s390x_vector-LABEL: v0_f16x8:
309+ // s390x_vector: #APP
310+ // s390x_vector: vlr %v0, %v0
311+ // s390x_vector: #NO_APP
312+ #[ cfg( s390x_vector) ]
313+ check_reg ! ( v0_f16x8, f16x8, "v0" , "vlr" ) ;
314+
296315// s390x_vector-LABEL: v0_f32x4:
297316// s390x_vector: #APP
298317// s390x_vector: vlr %v0, %v0
0 commit comments