@@ -69,8 +69,10 @@ use crate::{core_arch::arm::dsp::int16x2_t, mem::transmute};
6969
7070types ! {
7171 /// ARM-specific 32-bit wide vector of four packed `i8`.
72+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
7273 pub struct int8x4_t( i8 , i8 , i8 , i8 ) ;
7374 /// ARM-specific 32-bit wide vector of four packed `u8`.
75+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
7476 pub struct uint8x4_t( u8 , u8 , u8 , u8 ) ;
7577}
7678
@@ -161,6 +163,7 @@ extern "unadjusted" {
161163/// res\[3\] = a\[3\] + b\[3\]
162164#[ inline]
163165#[ cfg_attr( test, assert_instr( qadd8) ) ]
166+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
164167pub unsafe fn __qadd8 ( a : int8x4_t , b : int8x4_t ) -> int8x4_t {
165168 dsp_call ! ( arm_qadd8, a, b)
166169}
@@ -175,6 +178,7 @@ pub unsafe fn __qadd8(a: int8x4_t, b: int8x4_t) -> int8x4_t {
175178/// res\[3\] = a\[3\] - b\[3\]
176179#[ inline]
177180#[ cfg_attr( test, assert_instr( qsub8) ) ]
181+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
178182pub unsafe fn __qsub8 ( a : int8x4_t , b : int8x4_t ) -> int8x4_t {
179183 dsp_call ! ( arm_qsub8, a, b)
180184}
@@ -187,6 +191,7 @@ pub unsafe fn __qsub8(a: int8x4_t, b: int8x4_t) -> int8x4_t {
187191/// res\[1\] = a\[1\] - b\[1\]
188192#[ inline]
189193#[ cfg_attr( test, assert_instr( qsub16) ) ]
194+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
190195pub unsafe fn __qsub16 ( a : int16x2_t , b : int16x2_t ) -> int16x2_t {
191196 dsp_call ! ( arm_qsub16, a, b)
192197}
@@ -199,6 +204,7 @@ pub unsafe fn __qsub16(a: int16x2_t, b: int16x2_t) -> int16x2_t {
199204/// res\[1\] = a\[1\] + b\[1\]
200205#[ inline]
201206#[ cfg_attr( test, assert_instr( qadd16) ) ]
207+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
202208pub unsafe fn __qadd16 ( a : int16x2_t , b : int16x2_t ) -> int16x2_t {
203209 dsp_call ! ( arm_qadd16, a, b)
204210}
@@ -209,6 +215,7 @@ pub unsafe fn __qadd16(a: int16x2_t, b: int16x2_t) -> int16x2_t {
209215/// res\[1\] = a\[1\] + b\[0\]
210216#[ inline]
211217#[ cfg_attr( test, assert_instr( qasx) ) ]
218+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
212219pub unsafe fn __qasx ( a : int16x2_t , b : int16x2_t ) -> int16x2_t {
213220 dsp_call ! ( arm_qasx, a, b)
214221}
@@ -219,6 +226,7 @@ pub unsafe fn __qasx(a: int16x2_t, b: int16x2_t) -> int16x2_t {
219226/// res\[1\] = a\[1\] - b\[0\]
220227#[ inline]
221228#[ cfg_attr( test, assert_instr( qsax) ) ]
229+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
222230pub unsafe fn __qsax ( a : int16x2_t , b : int16x2_t ) -> int16x2_t {
223231 dsp_call ! ( arm_qsax, a, b)
224232}
@@ -231,6 +239,7 @@ pub unsafe fn __qsax(a: int16x2_t, b: int16x2_t) -> int16x2_t {
231239/// and the GE bits of the APSR are set.
232240#[ inline]
233241#[ cfg_attr( test, assert_instr( sadd16) ) ]
242+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
234243pub unsafe fn __sadd16 ( a : int16x2_t , b : int16x2_t ) -> int16x2_t {
235244 dsp_call ! ( arm_sadd16, a, b)
236245}
@@ -245,6 +254,7 @@ pub unsafe fn __sadd16(a: int16x2_t, b: int16x2_t) -> int16x2_t {
245254/// and the GE bits of the APSR are set.
246255#[ inline]
247256#[ cfg_attr( test, assert_instr( sadd8) ) ]
257+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
248258pub unsafe fn __sadd8 ( a : int8x4_t , b : int8x4_t ) -> int8x4_t {
249259 dsp_call ! ( arm_sadd8, a, b)
250260}
@@ -256,6 +266,7 @@ pub unsafe fn __sadd8(a: int8x4_t, b: int8x4_t) -> int8x4_t {
256266/// res = a\[0\] * b\[0\] + a\[1\] * b\[1\] + c
257267#[ inline]
258268#[ cfg_attr( test, assert_instr( smlad) ) ]
269+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
259270pub unsafe fn __smlad ( a : int16x2_t , b : int16x2_t , c : i32 ) -> i32 {
260271 arm_smlad ( transmute ( a) , transmute ( b) , c)
261272}
@@ -267,6 +278,7 @@ pub unsafe fn __smlad(a: int16x2_t, b: int16x2_t, c: i32) -> i32 {
267278/// res = a\[0\] * b\[0\] - a\[1\] * b\[1\] + c
268279#[ inline]
269280#[ cfg_attr( test, assert_instr( smlsd) ) ]
281+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
270282pub unsafe fn __smlsd ( a : int16x2_t , b : int16x2_t , c : i32 ) -> i32 {
271283 arm_smlsd ( transmute ( a) , transmute ( b) , c)
272284}
@@ -279,6 +291,7 @@ pub unsafe fn __smlsd(a: int16x2_t, b: int16x2_t, c: i32) -> i32 {
279291/// and the GE bits of the APSR are set.
280292#[ inline]
281293#[ cfg_attr( test, assert_instr( sasx) ) ]
294+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
282295pub unsafe fn __sasx ( a : int16x2_t , b : int16x2_t ) -> int16x2_t {
283296 dsp_call ! ( arm_sasx, a, b)
284297}
@@ -295,6 +308,7 @@ pub unsafe fn __sasx(a: int16x2_t, b: int16x2_t) -> int16x2_t {
295308/// where GE are bits of APSR
296309#[ inline]
297310#[ cfg_attr( test, assert_instr( sel) ) ]
311+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
298312pub unsafe fn __sel ( a : int8x4_t , b : int8x4_t ) -> int8x4_t {
299313 dsp_call ! ( arm_sel, a, b)
300314}
@@ -309,6 +323,7 @@ pub unsafe fn __sel(a: int8x4_t, b: int8x4_t) -> int8x4_t {
309323/// res\[3\] = (a\[3\] + b\[3\]) / 2
310324#[ inline]
311325#[ cfg_attr( test, assert_instr( shadd8) ) ]
326+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
312327pub unsafe fn __shadd8 ( a : int8x4_t , b : int8x4_t ) -> int8x4_t {
313328 dsp_call ! ( arm_shadd8, a, b)
314329}
@@ -321,6 +336,7 @@ pub unsafe fn __shadd8(a: int8x4_t, b: int8x4_t) -> int8x4_t {
321336/// res\[1\] = (a\[1\] + b\[1\]) / 2
322337#[ inline]
323338#[ cfg_attr( test, assert_instr( shadd16) ) ]
339+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
324340pub unsafe fn __shadd16 ( a : int16x2_t , b : int16x2_t ) -> int16x2_t {
325341 dsp_call ! ( arm_shadd16, a, b)
326342}
@@ -335,6 +351,7 @@ pub unsafe fn __shadd16(a: int16x2_t, b: int16x2_t) -> int16x2_t {
335351/// res\[3\] = (a\[3\] - b\[3\]) / 2
336352#[ inline]
337353#[ cfg_attr( test, assert_instr( shsub8) ) ]
354+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
338355pub unsafe fn __shsub8 ( a : int8x4_t , b : int8x4_t ) -> int8x4_t {
339356 dsp_call ! ( arm_shsub8, a, b)
340357}
@@ -352,6 +369,7 @@ pub unsafe fn __shsub8(a: int8x4_t, b: int8x4_t) -> int8x4_t {
352369/// The GE bits of the APSR are set.
353370#[ inline]
354371#[ cfg_attr( test, assert_instr( usub8) ) ]
372+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
355373pub unsafe fn __usub8 ( a : uint8x4_t , b : uint8x4_t ) -> uint8x4_t {
356374 dsp_call ! ( arm_usub8, a, b)
357375}
@@ -369,6 +387,7 @@ pub unsafe fn __usub8(a: uint8x4_t, b: uint8x4_t) -> uint8x4_t {
369387/// The GE bits of the APSR are set.
370388#[ inline]
371389#[ cfg_attr( test, assert_instr( ssub8) ) ]
390+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
372391pub unsafe fn __ssub8 ( a : int8x4_t , b : int8x4_t ) -> int8x4_t {
373392 dsp_call ! ( arm_ssub8, a, b)
374393}
@@ -381,6 +400,7 @@ pub unsafe fn __ssub8(a: int8x4_t, b: int8x4_t) -> int8x4_t {
381400/// res\[1\] = (a\[1\] - b\[1\]) / 2
382401#[ inline]
383402#[ cfg_attr( test, assert_instr( shsub16) ) ]
403+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
384404pub unsafe fn __shsub16 ( a : int16x2_t , b : int16x2_t ) -> int16x2_t {
385405 dsp_call ! ( arm_shsub16, a, b)
386406}
@@ -394,6 +414,7 @@ pub unsafe fn __shsub16(a: int16x2_t, b: int16x2_t) -> int16x2_t {
394414/// and sets the Q flag if overflow occurs on the addition.
395415#[ inline]
396416#[ cfg_attr( test, assert_instr( smuad) ) ]
417+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
397418pub unsafe fn __smuad ( a : int16x2_t , b : int16x2_t ) -> i32 {
398419 arm_smuad ( transmute ( a) , transmute ( b) )
399420}
@@ -407,6 +428,7 @@ pub unsafe fn __smuad(a: int16x2_t, b: int16x2_t) -> i32 {
407428/// and sets the Q flag if overflow occurs on the addition.
408429#[ inline]
409430#[ cfg_attr( test, assert_instr( smuadx) ) ]
431+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
410432pub unsafe fn __smuadx ( a : int16x2_t , b : int16x2_t ) -> i32 {
411433 arm_smuadx ( transmute ( a) , transmute ( b) )
412434}
@@ -420,6 +442,7 @@ pub unsafe fn __smuadx(a: int16x2_t, b: int16x2_t) -> i32 {
420442/// and sets the Q flag if overflow occurs on the addition.
421443#[ inline]
422444#[ cfg_attr( test, assert_instr( smusd) ) ]
445+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
423446pub unsafe fn __smusd ( a : int16x2_t , b : int16x2_t ) -> i32 {
424447 arm_smusd ( transmute ( a) , transmute ( b) )
425448}
@@ -433,6 +456,7 @@ pub unsafe fn __smusd(a: int16x2_t, b: int16x2_t) -> i32 {
433456/// and sets the Q flag if overflow occurs on the addition.
434457#[ inline]
435458#[ cfg_attr( test, assert_instr( smusdx) ) ]
459+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
436460pub unsafe fn __smusdx ( a : int16x2_t , b : int16x2_t ) -> i32 {
437461 arm_smusdx ( transmute ( a) , transmute ( b) )
438462}
@@ -445,6 +469,7 @@ pub unsafe fn __smusdx(a: int16x2_t, b: int16x2_t) -> i32 {
445469/// (a\[2\] - b\[2\]) + (a\[3\] - b\[3\])
446470#[ inline]
447471#[ cfg_attr( test, assert_instr( usad8) ) ]
472+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
448473pub unsafe fn __usad8 ( a : int8x4_t , b : int8x4_t ) -> u32 {
449474 arm_usad8 ( transmute ( a) , transmute ( b) )
450475}
@@ -457,6 +482,7 @@ pub unsafe fn __usad8(a: int8x4_t, b: int8x4_t) -> u32 {
457482/// (a\[2\] - b\[2\]) + (a\[3\] - b\[3\]) + c
458483#[ inline]
459484#[ cfg_attr( test, assert_instr( usad8) ) ]
485+ #[ unstable( feature = "stdarch_arm_dsp" , issue = "117237" ) ]
460486pub unsafe fn __usada8 ( a : int8x4_t , b : int8x4_t , c : u32 ) -> u32 {
461487 __usad8 ( a, b) + c
462488}
0 commit comments