@@ -52,8 +52,8 @@ def Polynomial_AddOp : Polynomial_BinaryOp<"add", [Commutative]> {
5252 // add two polynomials modulo x^1024 - 1
5353 #poly = #polynomial.int_polynomial<x**1024 - 1>
5454 #ring = #polynomial.ring<coefficientType=i32, coefficientModulus=65536:i32, polynomialModulus=#poly>
55- %0 = polynomial.constant #polynomial.int_polynomial <1 + x**2> : !polynomial.polynomial<#ring>
56- %1 = polynomial.constant #polynomial.int_polynomial <x**5 - x + 1> : !polynomial.polynomial<#ring>
55+ %0 = polynomial.constant int <1 + x**2> : !polynomial.polynomial<#ring>
56+ %1 = polynomial.constant int <x**5 - x + 1> : !polynomial.polynomial<#ring>
5757 %2 = polynomial.add %0, %1 : !polynomial.polynomial<#ring>
5858 ```
5959 }];
@@ -76,8 +76,8 @@ def Polynomial_SubOp : Polynomial_BinaryOp<"sub"> {
7676 // subtract two polynomials modulo x^1024 - 1
7777 #poly = #polynomial.int_polynomial<x**1024 - 1>
7878 #ring = #polynomial.ring<coefficientType=i32, coefficientModulus=65536:i32, polynomialModulus=#poly>
79- %0 = polynomial.constant #polynomial.int_polynomial <1 + x**2> : !polynomial.polynomial<#ring>
80- %1 = polynomial.constant #polynomial.int_polynomial <x**5 - x + 1> : !polynomial.polynomial<#ring>
79+ %0 = polynomial.constant int <1 + x**2> : !polynomial.polynomial<#ring>
80+ %1 = polynomial.constant int <x**5 - x + 1> : !polynomial.polynomial<#ring>
8181 %2 = polynomial.sub %0, %1 : !polynomial.polynomial<#ring>
8282 ```
8383 }];
@@ -101,8 +101,8 @@ def Polynomial_MulOp : Polynomial_BinaryOp<"mul", [Commutative]> {
101101 // multiply two polynomials modulo x^1024 - 1
102102 #poly = #polynomial.int_polynomial<x**1024 - 1>
103103 #ring = #polynomial.ring<coefficientType=i32, coefficientModulus=65536:i32, polynomialModulus=#poly>
104- %0 = polynomial.constant #polynomial.int_polynomial <1 + x**2> : !polynomial.polynomial<#ring>
105- %1 = polynomial.constant #polynomial.int_polynomial <x**5 - x + 1> : !polynomial.polynomial<#ring>
104+ %0 = polynomial.constant int <1 + x**2> : !polynomial.polynomial<#ring>
105+ %1 = polynomial.constant int <x**5 - x + 1> : !polynomial.polynomial<#ring>
106106 %2 = polynomial.mul %0, %1 : !polynomial.polynomial<#ring>
107107 ```
108108 }];
@@ -126,7 +126,7 @@ def Polynomial_MulScalarOp : Polynomial_Op<"mul_scalar", [
126126 // multiply two polynomials modulo x^1024 - 1
127127 #poly = #polynomial.int_polynomial<x**1024 - 1>
128128 #ring = #polynomial.ring<coefficientType=i32, coefficientModulus=65536:i32, polynomialModulus=#poly>
129- %0 = polynomial.constant #polynomial.int_polynomial <1 + x**2> : !polynomial.polynomial<#ring>
129+ %0 = polynomial.constant int <1 + x**2> : !polynomial.polynomial<#ring>
130130 %1 = arith.constant 3 : i32
131131 %2 = polynomial.mul_scalar %0, %1 : !polynomial.polynomial<#ring>, i32
132132 ```
@@ -157,7 +157,7 @@ def Polynomial_LeadingTermOp: Polynomial_Op<"leading_term"> {
157157 ```mlir
158158 #poly = #polynomial.int_polynomial<x**1024 - 1>
159159 #ring = #polynomial.ring<coefficientType=i32, coefficientModulus=65536:i32, polynomialModulus=#poly>
160- %0 = polynomial.constant #polynomial.int_polynomial <1 + x**2> : !polynomial.polynomial<#ring>
160+ %0 = polynomial.constant int <1 + x**2> : !polynomial.polynomial<#ring>
161161 %1, %2 = polynomial.leading_term %0 : !polynomial.polynomial<#ring> -> (index, i32)
162162 ```
163163 }];
@@ -272,29 +272,29 @@ def Polynomial_ToTensorOp : Polynomial_Op<"to_tensor", [Pure]> {
272272 let hasVerifier = 1;
273273}
274274
275- def Polynomial_AnyPolynomialAttr : AnyAttrOf<[
276- Polynomial_FloatPolynomialAttr ,
277- Polynomial_IntPolynomialAttr
275+ def Polynomial_AnyTypedPolynomialAttr : AnyAttrOf<[
276+ Polynomial_TypedFloatPolynomialAttr ,
277+ Polynomial_TypedIntPolynomialAttr
278278]>;
279279
280280// Not deriving from Polynomial_Op due to need for custom assembly format
281- def Polynomial_ConstantOp : Op<Polynomial_Dialect, "constant", [Pure]> {
281+ def Polynomial_ConstantOp : Op<Polynomial_Dialect, "constant",
282+ [Pure, InferTypeOpAdaptor]> {
282283 let summary = "Define a constant polynomial via an attribute.";
283284 let description = [{
284285 Example:
285286
286287 ```mlir
287- #poly = #polynomial.int_polynomial<x**1024 - 1>
288- #ring = #polynomial.ring<coefficientType=i32, coefficientModulus=65536:i32, polynomialModulus=#poly>
289- %0 = polynomial.constant #polynomial.int_polynomial<1 + x**2> : !polynomial.polynomial<#ring>
288+ !int_poly_ty = !polynomial.polynomial<ring=<coefficientType=i32>>
289+ %0 = polynomial.constant int<1 + x**2> : !int_poly_ty
290290
291- #float_ring = # polynomial.ring<coefficientType=f32>
292- %0 = polynomial.constant #polynomial.float_polynomial <0.5 + 1.3e06 x**2> : !polynomial.polynomial<#float_ring>
291+ !float_poly_ty = ! polynomial.polynomial< ring= <coefficientType=f32> >
292+ %1 = polynomial.constant float <0.5 + 1.3e06 x**2> : !float_poly_ty
293293 ```
294294 }];
295- let arguments = (ins Polynomial_AnyPolynomialAttr :$value);
295+ let arguments = (ins Polynomial_AnyTypedPolynomialAttr :$value);
296296 let results = (outs Polynomial_PolynomialType:$output);
297- let assemblyFormat = "attr-dict `:` type($output)" ;
297+ let hasCustomAssemblyFormat = 1 ;
298298}
299299
300300def Polynomial_NTTOp : Polynomial_Op<"ntt", [Pure]> {
0 commit comments