Avoid ambiguous vector casts.
Bug swiftshader:15
Change-Id: Ia42d21b4f2c9e19a839ffb414661f2dffa350692
Reviewed-on: https://swiftshader-review.googlesource.com/7711
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-on: https://swiftshader-review.googlesource.com/7630
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Reactor/SubzeroReactor.cpp b/src/Reactor/SubzeroReactor.cpp
index ae7ad53..c0778af 100644
--- a/src/Reactor/SubzeroReactor.cpp
+++ b/src/Reactor/SubzeroReactor.cpp
@@ -1939,22 +1939,28 @@
assert(false && "UNIMPLEMENTED"); return nullptr;
}
+ Byte4::Byte4(RValue<Byte8> cast)
+ {
+ // xyzw.parent = this;
+
+ storeValue(Nucleus::createBitCast(cast.value, getType()));
+ }
+
+ Byte4::Byte4(const Reference<Byte4> &rhs)
+ {
+ // xyzw.parent = this;
+
+ assert(false && "UNIMPLEMENTED");
+ }
+
Type *Byte4::getType()
{
- #if 0
- return VectorType::get(Byte::getType(), 4);
- #else
- return UInt::getType(); // FIXME
- #endif
+ assert(false && "UNIMPLEMENTED"); return nullptr;
}
Type *SByte4::getType()
{
- #if 0
- return VectorType::get(SByte::getType(), 4);
- #else
- return Int::getType(); // FIXME
- #endif
+ assert(false && "UNIMPLEMENTED"); return nullptr;
}
Byte8::Byte8()
@@ -1965,11 +1971,8 @@
Byte8::Byte8(uint8_t x0, uint8_t x1, uint8_t x2, uint8_t x3, uint8_t x4, uint8_t x5, uint8_t x6, uint8_t x7)
{
// xyzw.parent = this;
- }
- Byte8::Byte8(int64_t x)
- {
- // xyzw.parent = this;
+ assert(false && "UNIMPLEMENTED");
}
Byte8::Byte8(RValue<Byte8> rhs)
@@ -2190,13 +2193,6 @@
assert(false && "UNIMPLEMENTED");
}
- SByte8::SByte8(int64_t x)
- {
- // xyzw.parent = this;
-
- assert(false && "UNIMPLEMENTED");
- }
-
SByte8::SByte8(RValue<SByte8> rhs)
{
// xyzw.parent = this;
@@ -2454,6 +2450,26 @@
assert(false && "UNIMPLEMENTED"); return nullptr;
}
+ Short2::Short2(RValue<Short4> cast)
+ {
+ assert(false && "UNIMPLEMENTED");
+ }
+
+ Type *Short2::getType()
+ {
+ assert(false && "UNIMPLEMENTED"); return nullptr;
+ }
+
+ UShort2::UShort2(RValue<UShort4> cast)
+ {
+ assert(false && "UNIMPLEMENTED");
+ }
+
+ Type *UShort2::getType()
+ {
+ assert(false && "UNIMPLEMENTED"); return nullptr;
+ }
+
Short4::Short4(RValue<Int> cast)
{
Value *extend = Nucleus::createZExt(cast.value, Long::getType());
@@ -2944,6 +2960,21 @@
assert(false && "UNIMPLEMENTED"); return RValue<UShort4>(V(nullptr));
}
+ RValue<UShort4> operator&(RValue<UShort4> lhs, RValue<UShort4> rhs)
+ {
+ assert(false && "UNIMPLEMENTED"); return RValue<UShort4>(V(nullptr));
+ }
+
+ RValue<UShort4> operator|(RValue<UShort4> lhs, RValue<UShort4> rhs)
+ {
+ assert(false && "UNIMPLEMENTED"); return RValue<UShort4>(V(nullptr));
+ }
+
+ RValue<UShort4> operator^(RValue<UShort4> lhs, RValue<UShort4> rhs)
+ {
+ assert(false && "UNIMPLEMENTED"); return RValue<UShort4>(V(nullptr));
+ }
+
RValue<UShort4> operator<<(RValue<UShort4> lhs, unsigned char rhs)
{
assert(false && "UNIMPLEMENTED"); return RValue<UShort4>(V(nullptr));