MLIR  21.0.0git
DivisionConverter.h
Go to the documentation of this file.
1 //===- DivisionConverter.h - Complex division conversion ------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef MLIR_CONVERSION_COMPLEXCOMMON_DIVISIONCONVERTER_H
10 #define MLIR_CONVERSION_COMPLEXCOMMON_DIVISIONCONVERTER_H
11 
15 
16 namespace mlir {
17 namespace complex {
18 /// convert a complex division to the LLVM dialect using algebraic method
20  Location loc, Value lhsRe, Value lhsIm,
21  Value rhsRe, Value rhsIm,
22  LLVM::FastmathFlagsAttr fmf,
23  Value *resultRe, Value *resultIm);
24 
25 /// convert a complex division to the arith/math dialects using algebraic method
27  Location loc, Value lhsRe, Value lhsIm,
28  Value rhsRe, Value rhsIm,
29  arith::FastMathFlagsAttr fmf,
30  Value *resultRe, Value *resultIm);
31 
32 /// convert a complex division to the LLVM dialect using Smith's method
34  Location loc, Value lhsRe, Value lhsIm,
35  Value rhsRe, Value rhsIm,
36  LLVM::FastmathFlagsAttr fmf,
37  Value *resultRe, Value *resultIm);
38 
39 /// convert a complex division to the arith/math dialects using Smith's method
41  ConversionPatternRewriter &rewriter, Location loc, Value lhsRe, Value lhsIm,
42  Value rhsRe, Value rhsIm, arith::FastMathFlagsAttr fmf, Value *resultRe,
43  Value *resultIm);
44 
45 } // namespace complex
46 } // namespace mlir
47 
48 #endif // MLIR_CONVERSION_COMPLEXCOMMON_DIVISIONCONVERTER_H
This class implements a pattern rewriter for use with ConversionPatterns.
This class defines the main interface for locations in MLIR and acts as a non-nullable wrapper around...
Definition: Location.h:66
This class represents an instance of an SSA value in the MLIR system, representing a computable value...
Definition: Value.h:96
void convertDivToLLVMUsingRangeReduction(ConversionPatternRewriter &rewriter, Location loc, Value lhsRe, Value lhsIm, Value rhsRe, Value rhsIm, LLVM::FastmathFlagsAttr fmf, Value *resultRe, Value *resultIm)
convert a complex division to the LLVM dialect using Smith's method
void convertDivToStandardUsingAlgebraic(ConversionPatternRewriter &rewriter, Location loc, Value lhsRe, Value lhsIm, Value rhsRe, Value rhsIm, arith::FastMathFlagsAttr fmf, Value *resultRe, Value *resultIm)
convert a complex division to the arith/math dialects using algebraic method
void convertDivToStandardUsingRangeReduction(ConversionPatternRewriter &rewriter, Location loc, Value lhsRe, Value lhsIm, Value rhsRe, Value rhsIm, arith::FastMathFlagsAttr fmf, Value *resultRe, Value *resultIm)
convert a complex division to the arith/math dialects using Smith's method
void convertDivToLLVMUsingAlgebraic(ConversionPatternRewriter &rewriter, Location loc, Value lhsRe, Value lhsIm, Value rhsRe, Value rhsIm, LLVM::FastmathFlagsAttr fmf, Value *resultRe, Value *resultIm)
convert a complex division to the LLVM dialect using algebraic method
Include the generated interface declarations.