Enable Short8 and UShort8 construction from pointer dereference.

Change-Id: I09efd94974a520b790ab1d3fe9e8dc91295948f9
Reviewed-on: https://swiftshader-review.googlesource.com/5762
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Reactor/Nucleus.cpp b/src/Reactor/Nucleus.cpp
index 820bdd5..2c18dc7 100644
--- a/src/Reactor/Nucleus.cpp
+++ b/src/Reactor/Nucleus.cpp
@@ -3558,6 +3558,14 @@
 		storeValue(rhs.value);
 	}
 
+	Short8::Short8(const Reference<Short8> &rhs)
+	{
+	//	xyzw.parent = this;
+
+		Value *value = rhs.loadValue();
+		storeValue(value);
+	}
+
 	Short8::Short8(RValue<Short4> lo, RValue<Short4> hi)
 	{
 		Value *loLong = Nucleus::createBitCast(lo.value, Long::getType());
@@ -3643,6 +3651,14 @@
 		storeValue(rhs.value);
 	}
 
+	UShort8::UShort8(const Reference<UShort8> &rhs)
+	{
+	//	xyzw.parent = this;
+
+		Value *value = rhs.loadValue();
+		storeValue(value);
+	}
+
 	UShort8::UShort8(RValue<UShort4> lo, RValue<UShort4> hi)
 	{
 		Value *loLong = Nucleus::createBitCast(lo.value, Long::getType());
diff --git a/src/Reactor/Nucleus.hpp b/src/Reactor/Nucleus.hpp
index 90e67c9..9aa24be 100644
--- a/src/Reactor/Nucleus.hpp
+++ b/src/Reactor/Nucleus.hpp
@@ -1071,7 +1071,7 @@
 		Short8(short c0, short c1, short c2, short c3, short c4, short c5, short c6, short c7);
 		Short8(RValue<Short8> rhs);
 	//	Short8(const Short8 &rhs);
-	//	Short8(const Reference<Short8> &rhs);
+		Short8(const Reference<Short8> &rhs);
 		Short8(RValue<Short4> lo, RValue<Short4> hi);
 
 	//	RValue<Short8> operator=(RValue<Short8> rhs) const;
@@ -1128,7 +1128,7 @@
 		UShort8(unsigned short c0, unsigned short c1, unsigned short c2, unsigned short c3, unsigned short c4, unsigned short c5, unsigned short c6, unsigned short c7);
 		UShort8(RValue<UShort8> rhs);
 	//	UShort8(const UShort8 &rhs);
-	//	UShort8(const Reference<UShort8> &rhs);
+		UShort8(const Reference<UShort8> &rhs);
 		UShort8(RValue<UShort4> lo, RValue<UShort4> hi);
 
 		RValue<UShort8> operator=(RValue<UShort8> rhs) const;