summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/from_brain.rs58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/from_brain.rs b/tests/from_brain.rs
index f98ca03..a715e9f 100644
--- a/tests/from_brain.rs
+++ b/tests/from_brain.rs
@@ -1481,6 +1481,64 @@ fn inst_1110() {
test_display(&0b1110_0101_100_10100_11_000110_110_10110u32.to_le_bytes(), "{ R23:22 = cmpy(R20, R6):<<1:sat }");
test_display(&0b1110_0101_100_10100_11_000110_111_10110u32.to_le_bytes(), "{ R23:22 = vmpyhsu(R20, R6):<<1:sat }");
test_display(&0b1110_0101_110_10100_11_000110_110_10110u32.to_le_bytes(), "{ R23:22 = cmpy(R20, R6*):<<1:sat }");
+
+ test_display(&0b1110_0110_000_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 += mpy(R20.L, R6.L) }");
+ test_display(&0b1110_0110_000_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 += mpy(R20.L, R6.H) }");
+ test_display(&0b1110_0110_000_10100_11_000110_010_10110u32.to_le_bytes(), "{ R23:22 += mpy(R20.H, R6.L) }");
+ test_display(&0b1110_0110_000_10100_11_000110_011_10110u32.to_le_bytes(), "{ R23:22 += mpy(R20.H, R6.H) }");
+ test_display(&0b1110_0110_001_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 -= mpy(R20.L, R6.L) }");
+ test_display(&0b1110_0110_001_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 -= mpy(R20.L, R6.H) }");
+ test_display(&0b1110_0110_001_10100_11_000110_010_10110u32.to_le_bytes(), "{ R23:22 -= mpy(R20.H, R6.L) }");
+ test_display(&0b1110_0110_001_10100_11_000110_011_10110u32.to_le_bytes(), "{ R23:22 -= mpy(R20.H, R6.H) }");
+ test_display(&0b1110_0110_010_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 += mpyu(R20.L, R6.L) }");
+ test_display(&0b1110_0110_010_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 += mpyu(R20.L, R6.H) }");
+ test_display(&0b1110_0110_010_10100_11_000110_010_10110u32.to_le_bytes(), "{ R23:22 += mpyu(R20.H, R6.L) }");
+ test_display(&0b1110_0110_010_10100_11_000110_011_10110u32.to_le_bytes(), "{ R23:22 += mpyu(R20.H, R6.H) }");
+ test_display(&0b1110_0110_011_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 -= mpyu(R20.L, R6.L) }");
+ test_display(&0b1110_0110_011_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 -= mpyu(R20.L, R6.H) }");
+ test_display(&0b1110_0110_011_10100_11_000110_010_10110u32.to_le_bytes(), "{ R23:22 -= mpyu(R20.H, R6.L) }");
+ test_display(&0b1110_0110_011_10100_11_000110_011_10110u32.to_le_bytes(), "{ R23:22 -= mpyu(R20.H, R6.H) }");
+ test_display(&0b1110_0110_100_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 += mpy(R20.L, R6.L):<<1 }");
+ test_display(&0b1110_0110_100_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 += mpy(R20.L, R6.H):<<1 }");
+ test_display(&0b1110_0110_100_10100_11_000110_010_10110u32.to_le_bytes(), "{ R23:22 += mpy(R20.H, R6.L):<<1 }");
+ test_display(&0b1110_0110_100_10100_11_000110_011_10110u32.to_le_bytes(), "{ R23:22 += mpy(R20.H, R6.H):<<1 }");
+ test_display(&0b1110_0110_101_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 -= mpy(R20.L, R6.L):<<1 }");
+ test_display(&0b1110_0110_101_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 -= mpy(R20.L, R6.H):<<1 }");
+ test_display(&0b1110_0110_101_10100_11_000110_010_10110u32.to_le_bytes(), "{ R23:22 -= mpy(R20.H, R6.L):<<1 }");
+ test_display(&0b1110_0110_101_10100_11_000110_011_10110u32.to_le_bytes(), "{ R23:22 -= mpy(R20.H, R6.H):<<1 }");
+ test_display(&0b1110_0110_110_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 += mpyu(R20.L, R6.L):<<1 }");
+ test_display(&0b1110_0110_110_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 += mpyu(R20.L, R6.H):<<1 }");
+ test_display(&0b1110_0110_110_10100_11_000110_010_10110u32.to_le_bytes(), "{ R23:22 += mpyu(R20.H, R6.L):<<1 }");
+ test_display(&0b1110_0110_110_10100_11_000110_011_10110u32.to_le_bytes(), "{ R23:22 += mpyu(R20.H, R6.H):<<1 }");
+ test_display(&0b1110_0110_111_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 -= mpyu(R20.L, R6.L):<<1 }");
+ test_display(&0b1110_0110_111_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 -= mpyu(R20.L, R6.H):<<1 }");
+ test_display(&0b1110_0110_111_10100_11_000110_010_10110u32.to_le_bytes(), "{ R23:22 -= mpyu(R20.H, R6.L):<<1 }");
+ test_display(&0b1110_0110_111_10100_11_000110_011_10110u32.to_le_bytes(), "{ R23:22 -= mpyu(R20.H, R6.H):<<1 }");
+
+ test_display(&0b1110_0111_000_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 += mpy(R20, R6) }");
+ test_display(&0b1110_0111_001_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 -= mpy(R20, R6) }");
+ test_display(&0b1110_0111_010_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 += mpyu(R20, R6) }");
+ test_display(&0b1110_0111_011_10100_11_000110_000_10110u32.to_le_bytes(), "{ R23:22 -= mpyu(R20, R6) }");
+ test_display(&0b1110_0111_000_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 += cmpyi(R20, R6) }");
+ test_display(&0b1110_0111_001_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 += vmpyh(R21:20, R7:6) }");
+ test_display(&0b1110_0111_100_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 += vmpybu(R21:20, R7:6) }");
+ test_display(&0b1110_0111_110_10100_11_000110_001_10110u32.to_le_bytes(), "{ R23:22 += vmpybsu(R21:20, R7:6) }");
+ test_display(&0b1110_0111_000_10100_11_000110_010_10110u32.to_le_bytes(), "{ R23:22 += cmpyr(R20, R6) }");
+ test_display(&0b1110_0111_001_10100_11_000110_111_10110u32.to_le_bytes(), "{ R23:22 ^= pmpyw(R20, R6) }");
+ test_display(&0b1110_0111_101_10100_11_000110_111_10110u32.to_le_bytes(), "{ R23:22 ^= vpmpyh(R20, R6) }");
+
+ test_display(&0b1110_0111_000_10100_11_000110_101_10110u32.to_le_bytes(), "{ R23:22 += vmpyh(R21:20, R7:6):sat }");
+ test_display(&0b1110_0111_011_10100_11_000110_101_10110u32.to_le_bytes(), "{ R23:22 += vmpyhsu(R20, R6):sat }");
+ test_display(&0b1110_0111_000_10100_11_000110_110_10110u32.to_le_bytes(), "{ R23:22 += cmpy(R20, R6):sat }");
+ test_display(&0b1110_0111_010_10100_11_000110_110_10110u32.to_le_bytes(), "{ R23:22 += cmpy(R20, R6*):sat }");
+ test_display(&0b1110_0111_000_10100_11_000110_111_10110u32.to_le_bytes(), "{ R23:22 -= cmpy(R20, R6):sat }");
+ test_display(&0b1110_0111_010_10100_11_000110_111_10110u32.to_le_bytes(), "{ R23:22 -= cmpy(R20, R6*):sat }");
+ test_display(&0b1110_0111_100_10100_11_000110_101_10110u32.to_le_bytes(), "{ R23:22 += vmpyh(R21:20, R7:6):<<1:sat }");
+ test_display(&0b1110_0111_111_10100_11_000110_101_10110u32.to_le_bytes(), "{ R23:22 += vmpyhsu(R20, R6):<<1:sat }");
+ test_display(&0b1110_0111_100_10100_11_000110_110_10110u32.to_le_bytes(), "{ R23:22 += cmpy(R20, R6):<<1:sat }");
+ test_display(&0b1110_0111_110_10100_11_000110_110_10110u32.to_le_bytes(), "{ R23:22 += cmpy(R20, R6*):<<1:sat }");
+ test_display(&0b1110_0111_100_10100_11_000110_111_10110u32.to_le_bytes(), "{ R23:22 -= cmpy(R20, R6):<<1:sat }");
+ test_display(&0b1110_0111_110_10100_11_000110_111_10110u32.to_le_bytes(), "{ R23:22 -= cmpy(R20, R6*):<<1:sat }");
}
#[test]