Lines Matching defs:vector

462     std::vector<SpvId> types;
695 const std::vector<const Variable*>& parameters = function.parameters();
707 std::vector<SpvId> parameterTypes;
840 std::vector<SpvId> argumentIds;
841 std::vector<TempVar> tempVars;
871 std::vector<SpvId> argumentIds;
872 std::vector<TempVar> tempVars;
915 SpvId vector = this->nextId(&argType);
918 this->writeWord(vector, out);
922 return vector;
929 std::vector<SpvId> SPIRVCodeGenerator::vectorize(const ExpressionArray& args, OutputStream& out) {
940 std::vector<SpvId> result;
950 const std::vector<SpvId>& args,
978 std::vector<SpvId> argumentIds;
1087 std::vector<SpvId> args = this->vectorize(arguments, out);
1126 std::vector<SpvId> args = this->vectorize(arguments, out);
1133 std::vector<SpvId> args = this->vectorize(arguments, out);
1140 std::vector<SpvId> args = this->vectorize(arguments, out);
1147 std::vector<SpvId> args = this->vectorize(arguments, out);
1169 std::vector<SpvId> spvArgs = this->vectorize(finalArgs, out);
1175 std::vector<SpvId> args = this->vectorize(arguments, out);
1182 std::vector<SpvId> args = this->vectorize(arguments, out);
1201 std::vector<TempVar>* tempVars,
1239 void SPIRVCodeGenerator::copyBackTempVars(const std::vector<TempVar>& tempVars, OutputStream& out) {
1260 std::vector<TempVar> tempVars;
1261 std::vector<SpvId> argumentIds;
1300 // Check to see if we've already synthesized this vector constant.
1484 std::vector<SpvId> columnIds;
1582 std::vector<SpvId>* currentColumn,
1583 std::vector<SpvId>* columnIds,
1590 // Synthesize this column into a vector.
1604 std::vector<SpvId> arguments;
1631 std::vector<SpvId> columnIds;
1633 std::vector<SpvId> currentColumn;
1637 // This vector is a complete matrix column by itself and can be used as-is.
1672 std::vector<SpvId> arguments;
1692 // vector arguments at all, so we always extract each vector component and pass them
1708 SpvId SPIRVCodeGenerator::writeComposite(const std::vector<SpvId>& arguments,
1733 std::vector<SpvId> arguments(/*count*/ c.type().columns(), /*value*/ argument);
1742 std::vector<SpvId> arguments;
1780 // SPIR-V doesn't support vector(vector-of-different-type) directly, so we need to extract the
1785 std::vector<SpvId> arguments;
1864 std::vector<SpvId> SPIRVCodeGenerator::getAccessChain(const Expression& expr, OutputStream& out) {
1865 std::vector<SpvId> chain;
1965 // use OpVectorShuffle to mix and match the vector components. We effectively create
1966 // a virtual vector out of the concatenation of the left and right vectors, and then
1967 // select components from this virtual vector to make the result vector. For
1972 // we end up with the virtual vector (L.x, L.y, L.z, R.x, R.y, R.z). Then we want
1973 // our result vector to look like (R.x, L.y, R.y), so we need to select indices
1984 // current offset into the virtual vector, defaults to pulling the unmodified
2042 std::vector<SpvId> chain = this->getAccessChain(expr, out);
2290 std::vector<SpvId> columns;
2314 // Splat the scalar into a vector.
2318 std::vector<SpvId> vecArguments(/*count*/ matrixType.rows(), /*value*/ scalarId);
2321 // Splat the vector into a matrix.
2322 std::vector<SpvId> matArguments(/*count*/ matrixType.columns(), /*value*/ vectorId);
2355 // promote number to vector
2375 // promote number to vector
2388 // Matrix-times-vector and matrix-times-scalar have dedicated ops in SPIR-V.
2402 // Matrix-op-vector is not supported in GLSL/SkSL for non-multiplication ops; we
2415 // Matrix-times-vector and matrix-times-scalar have dedicated ops in SPIR-V.
2608 const std::vector<Type::Field>& fields = structType.fields();
2708 // This improves codegen, especially for certain types of divides (e.g. vector/scalar).
3028 std::vector<Type::Field> fields = type.fields();
3305 std::vector<SpvId> labels;
3414 /*parameters=*/std::vector<const Variable*>{},
3434 std::vector<Type::Field> fields;
3471 std::vector<Type::Field> fields;