impl uniform16

One new instruction movzwl needed.

Change-Id: Ic70ba34d667eb6d570aeca88c4243e0c3309525f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/283305
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
diff --git a/tests/SkVMTest.cpp b/tests/SkVMTest.cpp
index 65fd923..55a566b 100644
--- a/tests/SkVMTest.cpp
+++ b/tests/SkVMTest.cpp
@@ -1363,6 +1363,12 @@
         a.movzbl(A::r8,  A::rsi, 12);
         a.movzbl(A::r8,  A::rsi, 400);
 
+        a.movzwl(A::rax, A::rsi, 0);   // Low registers for src and dst.
+        a.movzwl(A::rax, A::r8,  0);   // High src register.
+        a.movzwl(A::r8 , A::rsi, 0);   // High dst register.
+        a.movzwl(A::r8,  A::rsi, 12);
+        a.movzwl(A::r8,  A::rsi, 400);
+
         a.vmovd(A::rax, A::xmm0);
         a.vmovd(A::rax, A::xmm8);
         a.vmovd(A::r8,  A::xmm0);
@@ -1387,12 +1393,18 @@
         a.movb(A::rdx, A::r8);
         a.movb(A::r8 , A::rax);
     },{
-        0x0f,0xb6,0x06,
+        0x0f,0xb6,0x06,     // movzbl (%rsi), %eax
         0x41,0x0f,0xb6,0x00,
         0x44,0x0f,0xb6,0x06,
         0x44,0x0f,0xb6,0x46, 12,
         0x44,0x0f,0xb6,0x86, 0x90,0x01,0x00,0x00,
 
+        0x0f,0xb7,0x06,    // movzwl (%rsi), %eax
+        0x41,0x0f,0xb7,0x00,
+        0x44,0x0f,0xb7,0x06,
+        0x44,0x0f,0xb7,0x46, 12,
+        0x44,0x0f,0xb7,0x86, 0x90,0x01,0x00,0x00,
+
         0xc5,0xf9,0x7e,0x00,
         0xc5,0x79,0x7e,0x00,
         0xc4,0xc1,0x79,0x7e,0x00,