Skip to content

Commit be35c2f

Browse files
gh-135: Finish adding pointer writeback tests.
1 parent 0fd8938 commit be35c2f

25 files changed

Lines changed: 451 additions & 0 deletions
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// CONV should write back to pointer operands when passed.
2+
TNS: x1 = [0d1, 0d2, 0d3]
3+
TNS: k1 = [0d1, 0d0, 0d1]
4+
CONV(@x1, k1)
5+
ASSERT(EQ(x1, [0d3, 0d4, 0d5]))
6+
7+
TNS: x2 = [0d1, 0d2, 0d3]
8+
TNS: k2 = [0d1, 0d0, 0d1]
9+
CONV(x2, @k2)
10+
ASSERT(EQ(k2, [0d3, 0d4, 0d5]))
11+
12+
TNS: x3 = [0d1, 0d2, 0d3]
13+
TNS: k3 = [0d1, 0d0, 0d1]
14+
CONV(@x3, @k3)
15+
ASSERT(EQ(x3, [0d3, 0d4, 0d5]))
16+
ASSERT(EQ(k3, [0d3, 0d4, 0d5]))
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// FILL / TFLIP writeback expectations
2+
TNS: dst1 = [0d0, 0d0, 0d0]
3+
FILL(@dst1, 0d7)
4+
ASSERT(EQ(dst1, [0d7, 0d7, 0d7]))
5+
6+
TNS: a1 = [[0d1, 0d2], [0d3, 0d4]]
7+
TFLIP(@a1)
8+
ASSERT(EQ(a1, [[0d1, 0d3], [0d2, 0d4]]))
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// M* family (matrix/tensor ops) should write back to pointer operands.
2+
TNS: A1 = [0d1, 0d2]
3+
TNS: B1 = [0d3, 0d4]
4+
MADD(@A1, B1)
5+
ASSERT(EQ(A1, [0d4, 0d6]))
6+
7+
TNS: A2 = [0d1, 0d2]
8+
TNS: B2 = [0d3, 0d4]
9+
MADD(A2, @B2)
10+
ASSERT(EQ(B2, [0d4, 0d6]))
11+
12+
// MSUM / MPROD behavior: elementwise -> writeback
13+
TNS: C1 = [0d2, 0d3]
14+
MSUM(@C1)
15+
ASSERT(EQ(C1, [0d5]))
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// SCAT should write back to destination pointer operands.
2+
TNS: dst1 = [0d1, 0d2, 0d3]
3+
TNS: src1 = [0d9]
4+
TNS: ind1 = [[0d2, 0d2]]
5+
SCAT(@dst1, src1, ind1)
6+
ASSERT(EQ(dst1, [0d1, 0d9, 0d3]))
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// These tests expect builtins like TINT/TFLT/TSTR to write back to pointer operands.
2+
TNS: t1 = [0d1.5, 0d2.9]
3+
TINT(@t1)
4+
ASSERT(EQ(t1, [0d1, 0d2]))
5+
6+
TNS: t2 = [0d1, 0d2]
7+
TFLT(@t2)
8+
ASSERT(EQ(t2, [0d1.0, 0d2.0]))
9+
10+
TNS: t3 = [0d1, 0d2]
11+
TSTR(@t3)
12+
ASSERT(EQ(t3, ["0d1", "0d2"]))
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Elementwise tensor ops should write back to pointer operands when provided.
2+
TNS: a1 = [0d1, 0d2]
3+
TNS: b1 = [0d3, 0d4]
4+
TADD(@a1, b1)
5+
ASSERT(EQ(a1, [0d4, 0d6]))
6+
7+
TNS: a2 = [0d1, 0d2]
8+
TNS: b2 = [0d3, 0d4]
9+
TADD(a2, @b2)
10+
ASSERT(EQ(b2, [0d4, 0d6]))
11+
12+
// similar for TMUL
13+
TNS: c1 = [0d2, 0d3]
14+
TNS: d1 = [0d4, 0d5]
15+
TMUL(@c1, d1)
16+
ASSERT(EQ(c1, [0d8, 0d15]))
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
INT: in1 = -0d5
2+
ABS(@in1)
3+
ASSERT(EQ(in1, 0d5))
4+
5+
FLT: fin1 = -0d5.5
6+
ABS(@fin1)
7+
ASSERT(EQ(fin1, 0d5.5))
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
INT: a1 = 0d2
2+
INT: b1 = 0d3
3+
ADD(@a1, b1)
4+
ASSERT(EQ(a1, 0d5))
5+
6+
INT: a2 = 0d2
7+
INT: b2 = 0d3
8+
ADD(a2, @b2)
9+
ASSERT(EQ(b2, 0d5))
10+
11+
INT: a3 = 0d2
12+
INT: b3 = 0d3
13+
ADD(@a3, @b3)
14+
ASSERT(EQ(a3, 0d5))
15+
ASSERT(EQ(b3, 0d5))
16+
17+
FLT: f1 = 0d1.5
18+
FLT: g1 = 0d2.25
19+
ADD(@f1, g1)
20+
ASSERT(EQ(f1, 0d3.75))
21+
22+
FLT: f2 = 0d1.5
23+
FLT: g2 = 0d2.25
24+
ADD(f2, @g2)
25+
ASSERT(EQ(g2, 0d3.75))
26+
27+
FLT: f3 = 0d1.5
28+
FLT: g3 = 0d2.25
29+
ADD(@f3, @g3)
30+
ASSERT(EQ(f3, 0d3.75))
31+
ASSERT(EQ(g3, 0d3.75))
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
TNS: t1 = [0d1, 0d2]
2+
APPEND(0d3, @t1)
3+
ASSERT(EQ(t1, [0d1, 0d2, 0d3]))
4+
5+
TNS: t2 = ["a", "b"]
6+
APPEND("c", @t2)
7+
ASSERT(EQ(t2, ["a", "b", "c"]))
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
INT: a1 = 0d5
2+
INT: b1 = 0d2
3+
CDIV(@a1, b1)
4+
ASSERT(EQ(a1, 0d3))
5+
6+
INT: a2 = 0d5
7+
INT: b2 = 0d2
8+
CDIV(a2, @b2)
9+
ASSERT(EQ(b2, 0d3))
10+
11+
INT: a3 = 0d5
12+
INT: b3 = 0d2
13+
CDIV(@a3, @b3)
14+
ASSERT(EQ(a3, 0d3))
15+
ASSERT(EQ(b3, 0d3))
16+
17+
FLT: f1 = 0d5.0
18+
FLT: g1 = 0d2.0
19+
CDIV(@f1, g1)
20+
ASSERT(EQ(f1, 0d3.0))
21+
22+
FLT: f2 = 0d5.0
23+
FLT: g2 = 0d2.0
24+
CDIV(f2, @g2)
25+
ASSERT(EQ(g2, 0d3.0))
26+
27+
FLT: f3 = 0d5.0
28+
FLT: g3 = 0d2.0
29+
CDIV(@f3, @g3)
30+
ASSERT(EQ(f3, 0d3.0))
31+
ASSERT(EQ(g3, 0d3.0))

0 commit comments

Comments
 (0)