Lines Matching refs:operands
133 OpFoldResult spirv::CompositeExtractOp::fold(ArrayRef<Attribute> operands) { in fold() argument
134 assert(operands.size() == 1 && "spv.CompositeExtract expects one operand"); in fold()
139 return extractCompositeElement(operands[0], indexVector); in fold()
146 OpFoldResult spirv::ConstantOp::fold(ArrayRef<Attribute> operands) { in fold() argument
147 assert(operands.empty() && "spv.Constant has no operands"); in fold()
155 OpFoldResult spirv::IAddOp::fold(ArrayRef<Attribute> operands) { in fold() argument
156 assert(operands.size() == 2 && "spv.IAdd expects two operands"); in fold()
167 operands, [](APInt a, const APInt &b) { return std::move(a) + b; }); in fold()
174 OpFoldResult spirv::IMulOp::fold(ArrayRef<Attribute> operands) { in fold() argument
175 assert(operands.size() == 2 && "spv.IMul expects two operands"); in fold()
189 operands, [](const APInt &a, const APInt &b) { return a * b; }); in fold()
196 OpFoldResult spirv::ISubOp::fold(ArrayRef<Attribute> operands) { in fold() argument
207 operands, [](APInt a, const APInt &b) { return std::move(a) - b; }); in fold()
214 OpFoldResult spirv::LogicalAndOp::fold(ArrayRef<Attribute> operands) { in fold() argument
215 assert(operands.size() == 2 && "spv.LogicalAnd should take two operands"); in fold()
217 if (Optional<bool> rhs = getScalarOrSplatBoolAttr(operands.back())) { in fold()
224 return operands.back(); in fold()
246 OpFoldResult spirv::LogicalOrOp::fold(ArrayRef<Attribute> operands) { in fold() argument
247 assert(operands.size() == 2 && "spv.LogicalOr should take two operands"); in fold()
249 if (auto rhs = getScalarOrSplatBoolAttr(operands.back())) { in fold()
252 return operands.back(); in fold()