Lines Matching defs:operation

44     // because converting the inner operation then invalidates the
45 // outer operation: causing the pattern to apply recursively.
155 // Some intrinsics return i1 when the original operation
200 auto buildNumericalArgs(OP operation, mlir::Type i32, mlir::Type logicalType,
204 inArgs.push_back({operation.getArray(), operation.getArray().getType()});
205 inArgs.push_back({operation.getDim(), i32});
206 inArgs.push_back({operation.getMask(), logicalType});
208 return lowerArguments(operation, inArgs, rewriter, argLowering);
211 auto buildMinMaxLocArgs(OP operation, mlir::Type i32, mlir::Type logicalType,
215 inArgs.push_back({operation.getArray(), operation.getArray().getType()});
216 inArgs.push_back({operation.getDim(), i32});
217 inArgs.push_back({operation.getMask(), logicalType});
219 operation->getLoc(), i32, getKindForType(operation.getType()));
221 inArgs.push_back({operation.getBack(), i32});
223 return lowerArguments(operation, inArgs, rewriter, argLowering);
226 auto buildLogicalArgs(OP operation, mlir::Type i32, mlir::Type logicalType,
230 inArgs.push_back({operation.getMask(), logicalType});
231 inArgs.push_back({operation.getDim(), i32});
233 return lowerArguments(operation, inArgs, rewriter, argLowering);
238 matchAndRewrite(OP operation,
261 fir::FirOpBuilder builder{rewriter, operation.getOperation()};
262 const mlir::Location &loc = operation->getLoc();
274 args = buildNumericalArgs(operation, i32, logicalType, rewriter, opName);
277 args = buildMinMaxLocArgs(operation, i32, logicalType, rewriter, opName,
280 args = buildLogicalArgs(operation, i32, logicalType, rewriter, opName);
284 hlfir::getFortranElementType(operation.getType());
289 processReturnValue(operation, resultExv, mustBeFreed, builder, rewriter);