Lines Matching defs:right

202     spv::Id createBinaryOperation(glslang::TOperator op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right,
204 spv::Id createBinaryMatrixOperation(spv::Op, OpDecorations&, spv::Id typeId, spv::Id left, spv::Id right);
234 spv::Id createShortCircuit(glslang::TOperator, glslang::TIntermTyped& left, glslang::TIntermTyped& right);
2074 // L-value chains will be computed left to right. We're on the symbol now,
2162 // says to evaluate the left before the right. So, always, left
2163 // node then right node.
2170 // evaluate the right
2283 // This adapter is building access chains left to right.
2287 // save it so that computing the right side doesn't trash it
2336 // binary operations. The right operand must be short circuited if it has
2340 // otherwise, we need to do dynamic short circuiting on the right operand
2353 // get right operand
2361 spv::Id right = accessChainLoad(node->getRight()->getType());
2368 convertGlslangToSpvType(node->getType()), left, right,
2918 // processing from left to right naturally leaves the right-most
3353 glslang::TIntermTyped* right = node->getSequence()[1]->getAsTyped();
3354 assert(left && right);
3361 right->traverse(this);
3362 spv::Id rightId = accessChainLoad(right->getType());
3882 // Find a way of executing both sides and selecting the right result.
5302 // in which case the following code does not matter. But, that's not quite right
6425 spv::Id typeId, spv::Id left, spv::Id right,
6460 if (isFloat && (builder.isVector(left) || builder.isVector(right))) {
6461 if (builder.isVector(right))
6462 std::swap(left, right);
6463 assert(builder.isScalar(right));
6586 if (builder.isMatrix(left) || builder.isMatrix(right) ||
6587 builder.isCooperativeMatrix(left) || builder.isCooperativeMatrix(right))
6588 return createBinaryMatrixOperation(binOp, decorations, typeId, left, right);
6592 builder.promoteScalar(decorations.precision, left, right);
6594 spv::Id result = builder.createBinOp(binOp, typeId, left, right);
6607 spv::Id result = builder.createCompositeCompare(decorations.precision, left, right, op == glslang::EOpEqual);
6668 spv::Id result = builder.createBinOp(binOp, typeId, left, right);
6692 spv::Id left, spv::Id right)
6699 if (builder.isMatrix(left) && builder.isScalar(right)) {
6701 spv::Id resultType = builder.getTypeId(right);
6702 right = builder.createBinOp(spv::OpFDiv, resultType, builder.makeFpConstant(resultType, 1.0), right);
6708 if (builder.isMatrix(right) || builder.isCooperativeMatrix(right))
6709 std::swap(left, right);
6710 assert(builder.isScalar(right));
6714 assert(builder.isMatrix(right));
6718 assert(builder.isVector(right));
6722 assert(builder.isMatrix(right));
6729 if (builder.isCooperativeMatrix(left) || builder.isCooperativeMatrix(right))
6733 spv::Id result = builder.createBinOp(op, typeId, left, right);
6755 bool rightMat = builder.isMatrix(right);
6756 unsigned int numCols = leftMat ? builder.getNumColumns(left) : builder.getNumColumns(right);
6757 int numRows = leftMat ? builder.getNumRows(left) : builder.getNumRows(right);
6764 else if (builder.isScalar(right))
6765 smearVec = builder.smearScalar(decorations.precision, right, vecType);
6772 spv::Id rightVec = rightMat ? builder.createCompositeExtract(right, vecType, indexes) : smearVec;
8503 // get the right Group Operation
10014 // Emit short-circuiting code, where 'right' is never evaluated unless
10017 glslang::TIntermTyped& right)
10033 // || => emit "if (! left) result = right"
10034 // && => emit "if ( left) result = right"
10044 // emit right operand as the "then" part of the "if"
10046 right.traverse(this);
10047 spv::Id rightId = accessChainLoad(right.getType());