add missing unit test for 128-bit ops

Change-Id: I233398bf34411231d44613d89aed28935fe30a28
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/340796
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
diff --git a/tests/SkVMTest.cpp b/tests/SkVMTest.cpp
index 1e7b3d1..4725997 100644
--- a/tests/SkVMTest.cpp
+++ b/tests/SkVMTest.cpp
@@ -2363,6 +2363,58 @@
     }
 }
 
+DEF_TEST(SkVM_128bit, r) {
+    float   floats[4*63];
+    uint8_t packed[4*63];
+
+    for (int i = 0; i < 4*63; i++) {
+        floats[i] = i * (1/255.0f);
+    }
+
+    skvm::PixelFormat rgba_ffff,
+                      rgba_8888;
+    skvm::SkColorType_to_PixelFormat(kRGBA_F32_SkColorType , &rgba_ffff);
+    skvm::SkColorType_to_PixelFormat(kRGBA_8888_SkColorType, &rgba_8888);
+
+    {  // Convert RGBA F32 to RGBA 8888, testing 128-bit loads.
+        skvm::Builder b;
+        {
+            skvm::Arg dst = b.arg( 4),
+                      src = b.arg(16);
+
+            skvm::Color c = b.load(rgba_ffff, src);
+            b.store(rgba_8888, dst, c);
+        }
+        test_jit_and_interpreter(b.done(), [&](const skvm::Program& program){
+            memset(packed, 0, sizeof(packed));
+            program.eval(63, packed, floats);
+            for (int i = 0; i < 4*63; i++) {
+                REPORTER_ASSERT(r, packed[i] == i);
+            }
+        });
+    }
+
+
+    {  // Convert RGBA 8888 to RGBA F32, testing 128-bit stores.
+        skvm::Builder b;
+        {
+            skvm::Arg dst = b.arg(16),
+                      src = b.arg( 4);
+
+            skvm::Color c = b.load(rgba_8888, src);
+            b.store(rgba_ffff, dst, c);
+        }
+        test_jit_and_interpreter(b.done(), [&](const skvm::Program& program){
+            memset(floats, 0, sizeof(floats));
+            program.eval(63, floats, packed);
+            for (int i = 0; i < 4*63; i++) {
+                REPORTER_ASSERT(r, floats[i] == i * (1/255.0f));
+            }
+        });
+    }
+
+}
+
 DEF_TEST(SkVM_is_NaN_is_finite, r) {
     skvm::Builder b;
     {