Fix packing of 64-bit vectors.

Bug swiftshader:15

Change-Id: I5177113ad50ff2e1aa99f772d9254f7894ce5a61
Reviewed-on: https://swiftshader-review.googlesource.com/7870
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-on: https://swiftshader-review.googlesource.com/8152
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Reactor/SubzeroReactor.cpp b/src/Reactor/SubzeroReactor.cpp
index dd0f68d..01f55ea 100644
--- a/src/Reactor/SubzeroReactor.cpp
+++ b/src/Reactor/SubzeroReactor.cpp
@@ -3222,7 +3222,7 @@
 		pack->addArg(y.value);
 		::basicBlock->appendInst(pack);
 
-		return RValue<SByte8>(V(result));
+		return As<SByte8>(Swizzle(As<Int4>(RValue<Byte16>(V(result))), 0x88));
 	}
 
 	RValue<Int2> UnpackLow(RValue<Short4> x, RValue<Short4> y)
@@ -3535,7 +3535,7 @@
 		pack->addArg(y.value);
 		::basicBlock->appendInst(pack);
 
-		return RValue<Byte8>(V(result));
+		return As<Byte8>(Swizzle(As<Int4>(RValue<Byte16>(V(result))), 0x88));
 	}
 
 	Type *UShort4::getType()