Skip to content

Commit 13bebba

Browse files
japaricgnzlbg
authored andcommitted
acle/{dsp,simd32}: fix unit tests
1 parent fa494e7 commit 13bebba

File tree

2 files changed

+49
-43
lines changed

2 files changed

+49
-43
lines changed

crates/core_arch/src/acle/dsp.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,28 @@ pub unsafe fn __qadd(a: i32, b: i32) -> i32 {
4949
pub unsafe fn __qsub(a: i32, b: i32) -> i32 {
5050
arm_qsub(a, b)
5151
}
52+
53+
#[cfg(test)]
54+
mod tests {
55+
use core_arch::arm::*;
56+
use std::mem;
57+
use stdsimd_test::simd_test;
58+
59+
#[test]
60+
fn qadd() {
61+
unsafe {
62+
assert_eq!(super::__qadd(-10, 60), 50);
63+
assert_eq!(super::__qadd(::std::i32::MAX, 10), ::std::i32::MAX);
64+
assert_eq!(super::__qadd(::std::i32::MIN, -10), ::std::i32::MIN);
65+
}
66+
}
67+
68+
#[test]
69+
fn qsub() {
70+
unsafe {
71+
assert_eq!(super::__qsub(10, 60), -50);
72+
assert_eq!(super::__qsub(::std::i32::MAX, -10), ::std::i32::MAX);
73+
assert_eq!(super::__qsub(::std::i32::MIN, 10), ::std::i32::MIN);
74+
}
75+
}
76+
}

crates/core_arch/src/acle/simd32.rs

Lines changed: 24 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -425,36 +425,17 @@ pub unsafe fn __usada8(a: int8x4_t, b: int8x4_t, c: u32) -> u32 {
425425

426426
#[cfg(test)]
427427
mod tests {
428-
use core_arch::arm::*;
429-
use core_arch::simd::*;
428+
use core_arch::simd::{i8x4, i16x2};
430429
use std::mem;
431430
use stdsimd_test::simd_test;
432431

433-
#[test]
434-
fn qadd() {
435-
unsafe {
436-
assert_eq!(dsp::__qadd(-10, 60), 50);
437-
assert_eq!(dsp::__qadd(::std::i32::MAX, 10), ::std::i32::MAX);
438-
assert_eq!(dsp::__qadd(::std::i32::MIN, -10), ::std::i32::MIN);
439-
}
440-
}
441-
442-
#[test]
443-
fn qsub() {
444-
unsafe {
445-
assert_eq!(dsp::__qsub(10, 60), -50);
446-
assert_eq!(dsp::__qsub(::std::i32::MAX, -10), ::std::i32::MAX);
447-
assert_eq!(dsp::__qsub(::std::i32::MIN, 10), ::std::i32::MIN);
448-
}
449-
}
450-
451432
#[test]
452433
fn qadd8() {
453434
unsafe {
454435
let a = i8x4::new(1, 2, 3, ::std::i8::MAX);
455436
let b = i8x4::new(2, -1, 0, 1);
456437
let c = i8x4::new(3, 1, 3, ::std::i8::MAX);
457-
let r: i8x4 = dsp_call!(dsp::__qadd8, a, b);
438+
let r: i8x4 = dsp_call!(super::__qadd8, a, b);
458439
assert_eq!(r, c);
459440
}
460441
}
@@ -465,7 +446,7 @@ mod tests {
465446
let a = i8x4::new(1, 2, 3, ::std::i8::MIN);
466447
let b = i8x4::new(2, -1, 0, 1);
467448
let c = i8x4::new(-1, 3, 3, ::std::i8::MIN);
468-
let r: i8x4 = dsp_call!(dsp::__qsub8, a, b);
449+
let r: i8x4 = dsp_call!(super::__qsub8, a, b);
469450
assert_eq!(r, c);
470451
}
471452
}
@@ -476,7 +457,7 @@ mod tests {
476457
let a = i16x2::new(1, 2);
477458
let b = i16x2::new(2, -1);
478459
let c = i16x2::new(3, 1);
479-
let r: i16x2 = dsp_call!(dsp::__qadd16, a, b);
460+
let r: i16x2 = dsp_call!(super::__qadd16, a, b);
480461
assert_eq!(r, c);
481462
}
482463
}
@@ -487,7 +468,7 @@ mod tests {
487468
let a = i16x2::new(10, 20);
488469
let b = i16x2::new(20, -10);
489470
let c = i16x2::new(-10, 30);
490-
let r: i16x2 = dsp_call!(dsp::__qsub16, a, b);
471+
let r: i16x2 = dsp_call!(super::__qsub16, a, b);
491472
assert_eq!(r, c);
492473
}
493474
}
@@ -498,7 +479,7 @@ mod tests {
498479
let a = i16x2::new(1, ::std::i16::MAX);
499480
let b = i16x2::new(2, 2);
500481
let c = i16x2::new(-1, ::std::i16::MAX);
501-
let r: i16x2 = dsp_call!(dsp::__qasx, a, b);
482+
let r: i16x2 = dsp_call!(super::__qasx, a, b);
502483
assert_eq!(r, c);
503484
}
504485
}
@@ -509,7 +490,7 @@ mod tests {
509490
let a = i16x2::new(1, ::std::i16::MAX);
510491
let b = i16x2::new(2, 2);
511492
let c = i16x2::new(3, ::std::i16::MAX - 2);
512-
let r: i16x2 = dsp_call!(dsp::__qsax, a, b);
493+
let r: i16x2 = dsp_call!(super::__qsax, a, b);
513494
assert_eq!(r, c);
514495
}
515496
}
@@ -520,7 +501,7 @@ mod tests {
520501
let a = i16x2::new(1, ::std::i16::MAX);
521502
let b = i16x2::new(2, 2);
522503
let c = i16x2::new(3, -::std::i16::MAX);
523-
let r: i16x2 = dsp_call!(dsp::__sadd16, a, b);
504+
let r: i16x2 = dsp_call!(super::__sadd16, a, b);
524505
assert_eq!(r, c);
525506
}
526507
}
@@ -531,7 +512,7 @@ mod tests {
531512
let a = i8x4::new(1, 2, 3, ::std::i8::MAX);
532513
let b = i8x4::new(4, 3, 2, 2);
533514
let c = i8x4::new(5, 5, 5, -::std::i8::MAX);
534-
let r: i8x4 = dsp_call!(dsp::__sadd8, a, b);
515+
let r: i8x4 = dsp_call!(super::__sadd8, a, b);
535516
assert_eq!(r, c);
536517
}
537518
}
@@ -542,7 +523,7 @@ mod tests {
542523
let a = i16x2::new(1, 2);
543524
let b = i16x2::new(2, 1);
544525
let c = i16x2::new(0, 4);
545-
let r: i16x2 = dsp_call!(dsp::__sasx, a, b);
526+
let r: i16x2 = dsp_call!(super::__sasx, a, b);
546527
assert_eq!(r, c);
547528
}
548529
}
@@ -552,7 +533,7 @@ mod tests {
552533
unsafe {
553534
let a = i16x2::new(1, 2);
554535
let b = i16x2::new(3, 4);
555-
let r = dsp::__smlad(::mem::transmute(a), ::mem::transmute(b), 10);
536+
let r = super::__smlad(::mem::transmute(a), ::mem::transmute(b), 10);
556537
assert_eq!(r, (1 * 3) + (2 * 4) + 10);
557538
}
558539
}
@@ -562,7 +543,7 @@ mod tests {
562543
unsafe {
563544
let a = i16x2::new(1, 2);
564545
let b = i16x2::new(3, 4);
565-
let r = dsp::__smlsd(::mem::transmute(a), ::mem::transmute(b), 10);
546+
let r = super::__smlsd(::mem::transmute(a), ::mem::transmute(b), 10);
566547
assert_eq!(r, ((1 * 3) - (2 * 4)) + 10);
567548
}
568549
}
@@ -573,9 +554,9 @@ mod tests {
573554
let a = i8x4::new(1, 2, 3, ::std::i8::MAX);
574555
let b = i8x4::new(4, 3, 2, 2);
575556
// call sadd8() to set GE bits
576-
dsp::__sadd8(::mem::transmute(a), ::mem::transmute(b));
557+
super::__sadd8(::mem::transmute(a), ::mem::transmute(b));
577558
let c = i8x4::new(1, 2, 3, ::std::i8::MAX);
578-
let r: i8x4 = dsp_call!(dsp::__sel, a, b);
559+
let r: i8x4 = dsp_call!(super::__sel, a, b);
579560
assert_eq!(r, c);
580561
}
581562
}
@@ -586,7 +567,7 @@ mod tests {
586567
let a = i8x4::new(1, 2, 3, 4);
587568
let b = i8x4::new(5, 4, 3, 2);
588569
let c = i8x4::new(3, 3, 3, 3);
589-
let r: i8x4 = dsp_call!(dsp::__shadd8, a, b);
570+
let r: i8x4 = dsp_call!(super::__shadd8, a, b);
590571
assert_eq!(r, c);
591572
}
592573
}
@@ -597,7 +578,7 @@ mod tests {
597578
let a = i16x2::new(1, 2);
598579
let b = i16x2::new(5, 4);
599580
let c = i16x2::new(3, 3);
600-
let r: i16x2 = dsp_call!(dsp::__shadd16, a, b);
581+
let r: i16x2 = dsp_call!(super::__shadd16, a, b);
601582
assert_eq!(r, c);
602583
}
603584
}
@@ -608,7 +589,7 @@ mod tests {
608589
let a = i8x4::new(1, 2, 3, 4);
609590
let b = i8x4::new(5, 4, 3, 2);
610591
let c = i8x4::new(-2, -1, 0, 1);
611-
let r: i8x4 = dsp_call!(dsp::__shsub8, a, b);
592+
let r: i8x4 = dsp_call!(super::__shsub8, a, b);
612593
assert_eq!(r, c);
613594
}
614595
}
@@ -619,7 +600,7 @@ mod tests {
619600
let a = i16x2::new(1, 2);
620601
let b = i16x2::new(5, 4);
621602
let c = i16x2::new(-2, -1);
622-
let r: i16x2 = dsp_call!(dsp::__shsub16, a, b);
603+
let r: i16x2 = dsp_call!(super::__shsub16, a, b);
623604
assert_eq!(r, c);
624605
}
625606
}
@@ -629,7 +610,7 @@ mod tests {
629610
unsafe {
630611
let a = i16x2::new(1, 2);
631612
let b = i16x2::new(5, 4);
632-
let r = dsp::__smuad(::mem::transmute(a), ::mem::transmute(b));
613+
let r = super::__smuad(::mem::transmute(a), ::mem::transmute(b));
633614
assert_eq!(r, 13);
634615
}
635616
}
@@ -639,7 +620,7 @@ mod tests {
639620
unsafe {
640621
let a = i16x2::new(1, 2);
641622
let b = i16x2::new(5, 4);
642-
let r = dsp::__smuadx(::mem::transmute(a), ::mem::transmute(b));
623+
let r = super::__smuadx(::mem::transmute(a), ::mem::transmute(b));
643624
assert_eq!(r, 14);
644625
}
645626
}
@@ -649,7 +630,7 @@ mod tests {
649630
unsafe {
650631
let a = i16x2::new(1, 2);
651632
let b = i16x2::new(5, 4);
652-
let r = dsp::__smusd(::mem::transmute(a), ::mem::transmute(b));
633+
let r = super::__smusd(::mem::transmute(a), ::mem::transmute(b));
653634
assert_eq!(r, -3);
654635
}
655636
}
@@ -659,7 +640,7 @@ mod tests {
659640
unsafe {
660641
let a = i16x2::new(1, 2);
661642
let b = i16x2::new(5, 4);
662-
let r = dsp::__smusdx(::mem::transmute(a), ::mem::transmute(b));
643+
let r = super::__smusdx(::mem::transmute(a), ::mem::transmute(b));
663644
assert_eq!(r, -6);
664645
}
665646
}
@@ -669,7 +650,7 @@ mod tests {
669650
unsafe {
670651
let a = i8x4::new(1, 2, 3, 4);
671652
let b = i8x4::new(4, 3, 2, 1);
672-
let r = dsp::__usad8(::mem::transmute(a), ::mem::transmute(b));
653+
let r = super::__usad8(::mem::transmute(a), ::mem::transmute(b));
673654
assert_eq!(r, 8);
674655
}
675656
}
@@ -680,7 +661,7 @@ mod tests {
680661
let a = i8x4::new(1, 2, 3, 4);
681662
let b = i8x4::new(4, 3, 2, 1);
682663
let c = 10;
683-
let r = dsp::__usad8a(::mem::transmute(a), ::mem::transmute(b), c);
664+
let r = super::__usada8(::mem::transmute(a), ::mem::transmute(b), c);
684665
assert_eq!(r, 8 + c);
685666
}
686667
}

0 commit comments

Comments
 (0)