OLD | NEW |
1 #include "Test.h" | 1 #include "Test.h" |
2 #include "Sk4x.h" | 2 #include "Sk4x.h" |
3 | 3 |
4 #define ASSERT_EQ(a, b) REPORTER_ASSERT(r, a.equal(b).allTrue()) | 4 #define ASSERT_EQ(a, b) REPORTER_ASSERT(r, a.equal(b).allTrue()) |
5 #define ASSERT_NE(a, b) REPORTER_ASSERT(r, a.notEqual(b).allTrue()) | 5 #define ASSERT_NE(a, b) REPORTER_ASSERT(r, a.notEqual(b).allTrue()) |
6 | 6 |
7 DEF_TEST(Sk4x_Construction, r) { | 7 DEF_TEST(Sk4x_Construction, r) { |
8 Sk4f uninitialized; | 8 Sk4f uninitialized; |
9 Sk4f zero(0,0,0,0); | 9 Sk4f zero(0,0,0,0); |
10 Sk4f foo(1,2,3,4), | 10 Sk4f foo(1,2,3,4), |
11 bar(foo), | 11 bar(foo), |
12 baz = bar; | 12 baz = bar; |
13 ASSERT_EQ(foo, bar); | 13 ASSERT_EQ(foo, bar); |
14 ASSERT_EQ(bar, baz); | 14 ASSERT_EQ(bar, baz); |
15 ASSERT_EQ(baz, foo); | 15 ASSERT_EQ(baz, foo); |
16 } | 16 } |
17 | 17 |
| 18 struct AlignedFloats { |
| 19 Sk4f forces16ByteAlignment; // On 64-bit machines, the stack starts 128-bi
t aligned, |
| 20 float fs[5]; // but not necessarily so on 32-bit. Adding a
n Sk4f forces it. |
| 21 }; |
| 22 |
18 DEF_TEST(Sk4x_LoadStore, r) { | 23 DEF_TEST(Sk4x_LoadStore, r) { |
| 24 AlignedFloats aligned; |
19 // fs will be 16-byte aligned, fs+1 not. | 25 // fs will be 16-byte aligned, fs+1 not. |
20 float fs[] = { 5,6,7,8,9 }; | 26 float* fs = aligned.fs; |
| 27 for (int i = 0; i < 5; i++) { // set to 5,6,7,8,9 |
| 28 fs[i] = float(i+5); |
| 29 } |
21 | 30 |
22 Sk4f foo = Sk4f::Load(fs); | 31 Sk4f foo = Sk4f::Load(fs); |
23 Sk4f bar = Sk4f::LoadAligned(fs); | 32 Sk4f bar = Sk4f::LoadAligned(fs); |
24 ASSERT_EQ(foo, bar); | 33 ASSERT_EQ(foo, bar); |
25 | 34 |
26 foo = Sk4f::Load(fs+1); | 35 foo = Sk4f::Load(fs+1); |
27 ASSERT_NE(foo, bar); | 36 ASSERT_NE(foo, bar); |
28 | 37 |
29 foo.storeAligned(fs); | 38 foo.storeAligned(fs); |
30 bar.store(fs+1); | 39 bar.store(fs+1); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 } | 113 } |
105 | 114 |
106 DEF_TEST(Sk4x_Swizzle, r) { | 115 DEF_TEST(Sk4x_Swizzle, r) { |
107 ASSERT_EQ(Sk4f(3,4,1,2), Sk4f(1,2,3,4).zwxy()); | 116 ASSERT_EQ(Sk4f(3,4,1,2), Sk4f(1,2,3,4).zwxy()); |
108 ASSERT_EQ(Sk4f(1,2,5,6), Sk4f::XYAB(Sk4f(1,2,3,4), Sk4f(5,6,7,8))); | 117 ASSERT_EQ(Sk4f(1,2,5,6), Sk4f::XYAB(Sk4f(1,2,3,4), Sk4f(5,6,7,8))); |
109 ASSERT_EQ(Sk4f(3,4,7,8), Sk4f::ZWCD(Sk4f(1,2,3,4), Sk4f(5,6,7,8))); | 118 ASSERT_EQ(Sk4f(3,4,7,8), Sk4f::ZWCD(Sk4f(1,2,3,4), Sk4f(5,6,7,8))); |
110 ASSERT_EQ(Sk4i(3,4,1,2), Sk4i(1,2,3,4).zwxy()); | 119 ASSERT_EQ(Sk4i(3,4,1,2), Sk4i(1,2,3,4).zwxy()); |
111 ASSERT_EQ(Sk4i(1,2,5,6), Sk4i::XYAB(Sk4i(1,2,3,4), Sk4i(5,6,7,8))); | 120 ASSERT_EQ(Sk4i(1,2,5,6), Sk4i::XYAB(Sk4i(1,2,3,4), Sk4i(5,6,7,8))); |
112 ASSERT_EQ(Sk4i(3,4,7,8), Sk4i::ZWCD(Sk4i(1,2,3,4), Sk4i(5,6,7,8))); | 121 ASSERT_EQ(Sk4i(3,4,7,8), Sk4i::ZWCD(Sk4i(1,2,3,4), Sk4i(5,6,7,8))); |
113 } | 122 } |
OLD | NEW |