{
bool isUnsigned = typeProxy == glslang::EbtUint;
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
+ bool isBool = typeProxy == glslang::EbtBool;
spv::Op binOp = spv::OpNop;
bool needMatchingVectors = true; // for non-matrix ops, would a scalar need to smear to match a vector?
case glslang::EOpVectorEqual:
if (isFloat)
binOp = spv::OpFOrdEqual;
+ else if (isBool)
+ binOp = spv::OpLogicalEqual;
else
binOp = spv::OpIEqual;
break;
case glslang::EOpVectorNotEqual:
if (isFloat)
binOp = spv::OpFOrdNotEqual;
+ else if (isBool)
+ binOp = spv::OpLogicalNotEqual;
else
binOp = spv::OpINotEqual;
break;
339: Label
341: 179(bvec4) Load 181(ub41)
343: 179(bvec4) Load 342(ub42)
- 344: 179(bvec4) IEqual 341 343
+ 344: 179(bvec4) LogicalEqual 341 343
345: 178(bool) Any 344
Branch 340
340: Label
348: Label
350: 179(bvec4) Load 181(ub41)
351: 179(bvec4) Load 342(ub42)
- 352: 179(bvec4) INotEqual 350 351
+ 352: 179(bvec4) LogicalNotEqual 350 351
353: 178(bool) Any 352
Branch 349
349: Label