| 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 |