mirror of
https://github.com/zama-ai/concrete.git
synced 2026-02-10 04:35:03 -05:00
46 lines
1.7 KiB
TableGen
46 lines
1.7 KiB
TableGen
#ifndef CONCRETELANG_CONVERSION_TFHETOCONCRETE_PATTERNS
|
|
#define CONCRETELANG_CONVERSION_TFHETOCONCRETE_PATTERNS
|
|
|
|
include "mlir/Pass/PassBase.td"
|
|
include "mlir/IR/PatternBase.td"
|
|
include "concretelang/Dialect/Concrete/IR/ConcreteOps.td"
|
|
include "concretelang/Dialect/TFHE/IR/TFHEOps.td"
|
|
|
|
def createZeroLWEOp : NativeCodeCall<"mlir::concretelang::createZeroLWEOpFromTFHE($_builder, $_loc, $0)">;
|
|
|
|
def ZeroGLWEPattern : Pat<
|
|
(TFHE_ZeroGLWEOp:$result),
|
|
(createZeroLWEOp $result)>;
|
|
|
|
def createAddLWEOp : NativeCodeCall<"mlir::concretelang::createConcreteOpFromTFHE<mlir::concretelang::Concrete::AddLweCiphertextsOp>($_builder, $_loc, $0, $1, $2)">;
|
|
|
|
def AddGLWEPattern : Pat<
|
|
(TFHE_AddGLWEOp:$result $arg0, $arg1),
|
|
(createAddLWEOp $arg0, $arg1, $result)>;
|
|
|
|
def createAddPlainLweOp : NativeCodeCall<"mlir::concretelang::createAddPlainLweCiphertext($_builder, $_loc, $0, $1, $2)">;
|
|
|
|
def AddGLWEIntPattern : Pat<
|
|
(TFHE_AddGLWEIntOp:$result $arg0, $arg1),
|
|
(createAddPlainLweOp $arg0, $arg1, $result)>;
|
|
|
|
def createMulClearLweOp : NativeCodeCall<"mlir::concretelang::createMulClearLweCiphertext($_builder, $_loc, $0, $1, $2)">;
|
|
|
|
def MulGLWEIntPattern : Pat<
|
|
(TFHE_MulGLWEIntOp:$result $arg0, $arg1),
|
|
(createMulClearLweOp $arg0, $arg1, $result)>;
|
|
|
|
def createSubIntLweOp : NativeCodeCall<"mlir::concretelang::createSubIntLweCiphertext($_builder, $_loc, $0, $1, $2)">;
|
|
|
|
def SubGLWEIntPattern : Pat<
|
|
(TFHE_SubGLWEIntOp:$result $arg0, $arg1),
|
|
(createSubIntLweOp $arg0, $arg1, $result)>;
|
|
|
|
def createNegLweOp : NativeCodeCall<"mlir::concretelang::createNegLweCiphertext($_builder, $_loc, $0, $1)">;
|
|
|
|
def NegGLWEPattern : Pat<
|
|
(TFHE_NegGLWEOp:$result $arg0),
|
|
(createNegLweOp $arg0, $result)>;
|
|
|
|
#endif
|