@@ -4810,7 +4810,7 @@ pub unsafe fn vpadalq_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t {
4810
4810
#[ inline]
4811
4811
#[ target_feature( enable = "neon,i8mm" ) ]
4812
4812
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
4813
- #[ cfg_attr( all( test, target_arch = "arm" ) , assert_instr( vsmmla ) ) ]
4813
+ #[ cfg_attr( all( test, target_arch = "arm" ) , assert_instr( nop ) ) ]
4814
4814
#[ cfg_attr( all( test, target_arch = "aarch64" ) , assert_instr( smmla) ) ]
4815
4815
pub unsafe fn vmmlaq_s32 ( a : int32x4_t , b : int8x16_t , c : int8x16_t ) -> int32x4_t {
4816
4816
#[ allow( improper_ctypes) ]
@@ -4829,7 +4829,7 @@ pub unsafe fn vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t
4829
4829
#[ inline]
4830
4830
#[ target_feature( enable = "neon,i8mm" ) ]
4831
4831
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
4832
- #[ cfg_attr( all( test, target_arch = "arm" ) , assert_instr( vummla ) ) ]
4832
+ #[ cfg_attr( all( test, target_arch = "arm" ) , assert_instr( nop ) ) ]
4833
4833
#[ cfg_attr( all( test, target_arch = "aarch64" ) , assert_instr( ummla) ) ]
4834
4834
pub unsafe fn vmmlaq_u32 ( a : uint32x4_t , b : uint8x16_t , c : uint8x16_t ) -> uint32x4_t {
4835
4835
#[ allow( improper_ctypes) ]
@@ -4848,7 +4848,7 @@ pub unsafe fn vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x
4848
4848
#[ inline]
4849
4849
#[ target_feature( enable = "neon,i8mm" ) ]
4850
4850
#[ cfg_attr( target_arch = "arm" , target_feature( enable = "v8" ) ) ]
4851
- #[ cfg_attr( all( test, target_arch = "arm" ) , assert_instr( vusmmla ) ) ]
4851
+ #[ cfg_attr( all( test, target_arch = "arm" ) , assert_instr( nop ) ) ]
4852
4852
#[ cfg_attr( all( test, target_arch = "aarch64" ) , assert_instr( usmmla) ) ]
4853
4853
pub unsafe fn vusmmlaq_s32 ( a : int32x4_t , b : uint8x16_t , c : int8x16_t ) -> int32x4_t {
4854
4854
#[ allow( improper_ctypes) ]
@@ -10427,29 +10427,29 @@ mod tests {
10427
10427
}
10428
10428
#[ simd_test( enable = "neon,i8mm" ) ]
10429
10429
unsafe fn test_vmmlaq_s32 ( ) {
10430
- let a: i32x4 = i32x4:: new ( 1 , 2 , 3 , 4 ) ;
10431
- let b: i8x16 = i8x16:: new ( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
10432
- let c: i8x16 = i8x16:: new ( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
10430
+ let a: i32x4 = i32x4:: new ( 1 , 3 , 4 , 9 ) ;
10431
+ let b: i8x16 = i8x16:: new ( 1 , 21 , 31 , 14 , 5 , 6 , 17 , 8 , 9 , 13 , 15 , 12 , 13 , 19 , 20 , 16 ) ;
10432
+ let c: i8x16 = i8x16:: new ( 12 , 22 , 3 , 4 , 5 , 56 , 7 , 8 , 91 , 10 , 11 , 15 , 13 , 14 , 17 , 16 ) ;
10433
10433
let e: i32x4 = i32x4:: new ( 1 , 2 , 3 , 4 ) ;
10434
10434
let r: i32x4 = transmute ( vmmlaq_s32 ( transmute ( a) , transmute ( b) , transmute ( c) ) ) ;
10435
10435
assert_eq ! ( r, e) ;
10436
10436
}
10437
10437
10438
10438
#[ simd_test( enable = "neon,i8mm" ) ]
10439
10439
unsafe fn test_vmmlaq_u32 ( ) {
10440
- let a: u32x4 = u32x4:: new ( 1 , 2 , 3 , 4 ) ;
10441
- let b: u8x16 = u8x16 :: new ( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
10442
- let c: u8x16 = u8x16 :: new ( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
10440
+ let a: u32x4 = u32x4:: new ( 1 , 3 , 4 , 9 ) ;
10441
+ let b: i8x16 = i8x16 :: new ( 1 , 21 , 31 , 14 , 5 , 6 , 17 , 8 , 9 , 13 , 15 , 12 , 13 , 19 , 20 , 16 ) ;
10442
+ let c: i8x16 = i8x16 :: new ( 12 , 22 , 3 , 4 , 5 , 56 , 7 , 8 , 91 , 10 , 11 , 15 , 13 , 14 , 17 , 16 ) ;
10443
10443
let e: u32x4 = u32x4:: new ( 1 , 2 , 3 , 4 ) ;
10444
10444
let r: u32x4 = transmute ( vmmlaq_u32 ( transmute ( a) , transmute ( b) , transmute ( c) ) ) ;
10445
10445
assert_eq ! ( r, e) ;
10446
10446
}
10447
10447
10448
10448
#[ simd_test( enable = "neon,i8mm" ) ]
10449
10449
unsafe fn test_vusmmlaq_s32 ( ) {
10450
- let a: i32x4 = i32x4:: new ( 1 , 2 , 3 , 4 ) ;
10451
- let b: u8x16 = u8x16 :: new ( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
10452
- let c: i8x16 = i8x16:: new ( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ) ;
10450
+ let a: i32x4 = i32x4:: new ( 1 , 3 , 4 , 9 ) ;
10451
+ let b: i8x16 = i8x16 :: new ( 1 , 21 , 31 , 14 , 5 , 6 , 17 , 8 , 9 , 13 , 15 , 12 , 13 , 19 , 20 , 16 ) ;
10452
+ let c: i8x16 = i8x16:: new ( 12 , 22 , 3 , 4 , 5 , 56 , 7 , 8 , 91 , 10 , 11 , 15 , 13 , 14 , 17 , 16 ) ;
10453
10453
let e: i32x4 = i32x4:: new ( 1 , 2 , 3 , 4 ) ;
10454
10454
let r: i32x4 = transmute ( vusmmlaq_s32 ( transmute ( a) , transmute ( b) , transmute ( c) ) ) ;
10455
10455
assert_eq ! ( r, e) ;
0 commit comments