Skip to content

Commit 43911fc

Browse files
committed
use struct(params)
1 parent 1230b73 commit 43911fc

File tree

4 files changed

+48
-48
lines changed

4 files changed

+48
-48
lines changed

mlir/include/mlir/Dialect/Polynomial/IR/Polynomial.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ def Polynomial_PolynomialType : Polynomial_Type<"Polynomial", "polynomial"> {
176176
A type for polynomials in a polynomial quotient ring.
177177
}];
178178
let parameters = (ins Polynomial_RingAttr:$ring);
179-
let assemblyFormat = "`<` qualified($ring) `>`";
179+
let assemblyFormat = "`<` struct(params) `>`";
180180
}
181181

182182
def PolynomialLike: TypeOrContainer<Polynomial_PolynomialType, "polynomial-like">;

mlir/test/Dialect/Polynomial/ops.mlir

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,77 +12,77 @@
1212

1313
#ideal = #polynomial.int_polynomial<-1 + x**1024>
1414
#ring = #polynomial.ring<coefficientType=i32, coefficientModulus=256, polynomialModulus=#ideal, primitiveRoot=193>
15-
!poly_ty = !polynomial.polynomial<#ring>
15+
!poly_ty = !polynomial.polynomial<ring=#ring>
1616

1717
#ntt_poly = #polynomial.int_polynomial<-1 + x**8>
1818
#ntt_ring = #polynomial.ring<coefficientType=i32, coefficientModulus=256, polynomialModulus=#ntt_poly, primitiveRoot=31>
19-
!ntt_poly_ty = !polynomial.polynomial<#ntt_ring>
19+
!ntt_poly_ty = !polynomial.polynomial<ring=#ntt_ring>
2020

2121
module {
22-
func.func @test_multiply() -> !polynomial.polynomial<#ring1> {
22+
func.func @test_multiply() -> !polynomial.polynomial<ring=#ring1> {
2323
%c0 = arith.constant 0 : index
2424
%two = arith.constant 2 : i16
2525
%five = arith.constant 5 : i16
2626
%coeffs1 = tensor.from_elements %two, %two, %five : tensor<3xi16>
2727
%coeffs2 = tensor.from_elements %five, %five, %two : tensor<3xi16>
2828

29-
%poly1 = polynomial.from_tensor %coeffs1 : tensor<3xi16> -> !polynomial.polynomial<#ring1>
30-
%poly2 = polynomial.from_tensor %coeffs2 : tensor<3xi16> -> !polynomial.polynomial<#ring1>
29+
%poly1 = polynomial.from_tensor %coeffs1 : tensor<3xi16> -> !polynomial.polynomial<ring=#ring1>
30+
%poly2 = polynomial.from_tensor %coeffs2 : tensor<3xi16> -> !polynomial.polynomial<ring=#ring1>
3131

32-
%3 = polynomial.mul %poly1, %poly2 : !polynomial.polynomial<#ring1>
32+
%3 = polynomial.mul %poly1, %poly2 : !polynomial.polynomial<ring=#ring1>
3333

34-
return %3 : !polynomial.polynomial<#ring1>
34+
return %3 : !polynomial.polynomial<ring=#ring1>
3535
}
3636

37-
func.func @test_elementwise(%p0 : !polynomial.polynomial<#ring1>, %p1: !polynomial.polynomial<#ring1>) {
38-
%tp0 = tensor.from_elements %p0, %p1 : tensor<2x!polynomial.polynomial<#ring1>>
39-
%tp1 = tensor.from_elements %p1, %p0 : tensor<2x!polynomial.polynomial<#ring1>>
37+
func.func @test_elementwise(%p0 : !polynomial.polynomial<ring=#ring1>, %p1: !polynomial.polynomial<ring=#ring1>) {
38+
%tp0 = tensor.from_elements %p0, %p1 : tensor<2x!polynomial.polynomial<ring=#ring1>>
39+
%tp1 = tensor.from_elements %p1, %p0 : tensor<2x!polynomial.polynomial<ring=#ring1>>
4040

4141
%c = arith.constant 2 : i32
42-
%mul_const_sclr = polynomial.mul_scalar %tp0, %c : tensor<2x!polynomial.polynomial<#ring1>>, i32
42+
%mul_const_sclr = polynomial.mul_scalar %tp0, %c : tensor<2x!polynomial.polynomial<ring=#ring1>>, i32
4343

44-
%add = polynomial.add %tp0, %tp1 : tensor<2x!polynomial.polynomial<#ring1>>
45-
%sub = polynomial.sub %tp0, %tp1 : tensor<2x!polynomial.polynomial<#ring1>>
46-
%mul = polynomial.mul %tp0, %tp1 : tensor<2x!polynomial.polynomial<#ring1>>
44+
%add = polynomial.add %tp0, %tp1 : tensor<2x!polynomial.polynomial<ring=#ring1>>
45+
%sub = polynomial.sub %tp0, %tp1 : tensor<2x!polynomial.polynomial<ring=#ring1>>
46+
%mul = polynomial.mul %tp0, %tp1 : tensor<2x!polynomial.polynomial<ring=#ring1>>
4747

4848
return
4949
}
5050

51-
func.func @test_to_from_tensor(%p0 : !polynomial.polynomial<#ring1>) {
51+
func.func @test_to_from_tensor(%p0 : !polynomial.polynomial<ring=#ring1>) {
5252
%c0 = arith.constant 0 : index
5353
%two = arith.constant 2 : i16
5454
%coeffs1 = tensor.from_elements %two, %two : tensor<2xi16>
5555
// CHECK: from_tensor
56-
%poly = polynomial.from_tensor %coeffs1 : tensor<2xi16> -> !polynomial.polynomial<#ring1>
56+
%poly = polynomial.from_tensor %coeffs1 : tensor<2xi16> -> !polynomial.polynomial<ring=#ring1>
5757
// CHECK: to_tensor
58-
%tensor = polynomial.to_tensor %poly : !polynomial.polynomial<#ring1> -> tensor<1024xi16>
58+
%tensor = polynomial.to_tensor %poly : !polynomial.polynomial<ring=#ring1> -> tensor<1024xi16>
5959

6060
return
6161
}
6262

63-
func.func @test_degree(%p0 : !polynomial.polynomial<#ring1>) {
64-
%0, %1 = polynomial.leading_term %p0 : !polynomial.polynomial<#ring1> -> (index, i32)
63+
func.func @test_degree(%p0 : !polynomial.polynomial<ring=#ring1>) {
64+
%0, %1 = polynomial.leading_term %p0 : !polynomial.polynomial<ring=#ring1> -> (index, i32)
6565
return
6666
}
6767

6868
func.func @test_monomial() {
6969
%deg = arith.constant 1023 : index
7070
%five = arith.constant 5 : i16
71-
%0 = polynomial.monomial %five, %deg : (i16, index) -> !polynomial.polynomial<#ring1>
71+
%0 = polynomial.monomial %five, %deg : (i16, index) -> !polynomial.polynomial<ring=#ring1>
7272
return
7373
}
7474

7575
func.func @test_monic_monomial_mul() {
7676
%five = arith.constant 5 : index
77-
%0 = polynomial.constant {value=#one_plus_x_squared} : !polynomial.polynomial<#ring1>
78-
%1 = polynomial.monic_monomial_mul %0, %five : (!polynomial.polynomial<#ring1>, index) -> !polynomial.polynomial<#ring1>
77+
%0 = polynomial.constant {value=#one_plus_x_squared} : !polynomial.polynomial<ring=#ring1>
78+
%1 = polynomial.monic_monomial_mul %0, %five : (!polynomial.polynomial<ring=#ring1>, index) -> !polynomial.polynomial<ring=#ring1>
7979
return
8080
}
8181

8282
func.func @test_constant() {
83-
%0 = polynomial.constant {value=#one_plus_x_squared} : !polynomial.polynomial<#ring1>
84-
%1 = polynomial.constant {value=#polynomial.int_polynomial<1 + x**2>} : !polynomial.polynomial<#ring1>
85-
%2 = polynomial.constant {value=#polynomial.float_polynomial<1.5 + 0.5 x**2>} : !polynomial.polynomial<#ring2>
83+
%0 = polynomial.constant {value=#one_plus_x_squared} : !polynomial.polynomial<ring=#ring1>
84+
%1 = polynomial.constant {value=#polynomial.int_polynomial<1 + x**2>} : !polynomial.polynomial<ring=#ring1>
85+
%2 = polynomial.constant {value=#polynomial.float_polynomial<1.5 + 0.5 x**2>} : !polynomial.polynomial<ring=#ring2>
8686
return
8787
}
8888

mlir/test/Dialect/Polynomial/ops_errors.mlir

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
#my_poly = #polynomial.int_polynomial<1 + x**1024>
44
#ring = #polynomial.ring<coefficientType=i16, coefficientModulus=256:i32, polynomialModulus=#my_poly>
5-
!ty = !polynomial.polynomial<#ring>
5+
!ty = !polynomial.polynomial<ring=#ring>
66

77
func.func @test_from_tensor_too_large_coeffs() {
88
%two = arith.constant 2 : i32
@@ -17,11 +17,11 @@ func.func @test_from_tensor_too_large_coeffs() {
1717

1818
#my_poly = #polynomial.int_polynomial<1 + x**4>
1919
#ring = #polynomial.ring<coefficientType=i32, coefficientModulus=256:i32, polynomialModulus=#my_poly>
20-
!ty = !polynomial.polynomial<#ring>
20+
!ty = !polynomial.polynomial<ring=#ring>
2121
func.func @test_from_tensor_wrong_tensor_type() {
2222
%two = arith.constant 2 : i32
2323
%coeffs1 = tensor.from_elements %two, %two, %two, %two, %two : tensor<5xi32>
24-
// expected-error@below {{input type 'tensor<5xi32>' does not match output type '!polynomial.polynomial<#polynomial.ring<coefficientType = i32, coefficientModulus = 256 : i32, polynomialModulus = <1 + x**4>>>'}}
24+
// expected-error@below {{input type 'tensor<5xi32>' does not match output type '!polynomial.polynomial<ring = <coefficientType = i32, coefficientModulus = 256 : i32, polynomialModulus = <1 + x**4>>>'}}
2525
// expected-note@below {{at most the degree of the polynomialModulus of the output type's ring attribute}}
2626
%poly = polynomial.from_tensor %coeffs1 : tensor<5xi32> -> !ty
2727
return
@@ -31,9 +31,9 @@ func.func @test_from_tensor_wrong_tensor_type() {
3131

3232
#my_poly = #polynomial.int_polynomial<1 + x**4>
3333
#ring = #polynomial.ring<coefficientType=i32, coefficientModulus=256:i32, polynomialModulus=#my_poly>
34-
!ty = !polynomial.polynomial<#ring>
34+
!ty = !polynomial.polynomial<ring=#ring>
3535
func.func @test_to_tensor_wrong_output_tensor_type(%arg0 : !ty) {
36-
// expected-error@below {{input type '!polynomial.polynomial<#polynomial.ring<coefficientType = i32, coefficientModulus = 256 : i32, polynomialModulus = <1 + x**4>>>' does not match output type 'tensor<5xi32>'}}
36+
// expected-error@below {{input type '!polynomial.polynomial<ring = <coefficientType = i32, coefficientModulus = 256 : i32, polynomialModulus = <1 + x**4>>>' does not match output type 'tensor<5xi32>'}}
3737
// expected-note@below {{at most the degree of the polynomialModulus of the input type's ring attribute}}
3838
%tensor = polynomial.to_tensor %arg0 : !ty -> tensor<5xi32>
3939
return
@@ -43,7 +43,7 @@ func.func @test_to_tensor_wrong_output_tensor_type(%arg0 : !ty) {
4343

4444
#my_poly = #polynomial.int_polynomial<1 + x**1024>
4545
#ring = #polynomial.ring<coefficientType=i16, coefficientModulus=256:i32, polynomialModulus=#my_poly>
46-
!ty = !polynomial.polynomial<#ring>
46+
!ty = !polynomial.polynomial<ring=#ring>
4747

4848
func.func @test_mul_scalar_wrong_type(%arg0: !ty) -> !ty {
4949
%scalar = arith.constant 2 : i32 // should be i16
@@ -56,7 +56,7 @@ func.func @test_mul_scalar_wrong_type(%arg0: !ty) -> !ty {
5656

5757
#my_poly = #polynomial.int_polynomial<-1 + x**1024>
5858
#ring = #polynomial.ring<coefficientType=i16, coefficientModulus=256:i16, polynomialModulus=#my_poly, primitiveRoot=31:i16>
59-
!poly_ty = !polynomial.polynomial<#ring>
59+
!poly_ty = !polynomial.polynomial<ring=#ring>
6060

6161
// CHECK-NOT: @test_invalid_ntt
6262
// CHECK-NOT: polynomial.ntt
@@ -70,7 +70,7 @@ func.func @test_invalid_ntt(%0 : !poly_ty) {
7070

7171
#my_poly = #polynomial.int_polynomial<-1 + x**1024>
7272
#ring = #polynomial.ring<coefficientType=i16, coefficientModulus=256:i16, polynomialModulus=#my_poly, primitiveRoot=31:i16>
73-
!poly_ty = !polynomial.polynomial<#ring>
73+
!poly_ty = !polynomial.polynomial<ring=#ring>
7474

7575
// CHECK-NOT: @test_invalid_ntt
7676
// CHECK-NOT: polynomial.ntt
@@ -85,7 +85,7 @@ func.func @test_invalid_ntt(%0 : !poly_ty) {
8585
#my_poly = #polynomial.int_polynomial<-1 + x**1024>
8686
#ring = #polynomial.ring<coefficientType=i16, coefficientModulus=256:i16, polynomialModulus=#my_poly>
8787
#ring1 = #polynomial.ring<coefficientType=i16, coefficientModulus=257:i16, polynomialModulus=#my_poly, primitiveRoot=31:i16>
88-
!poly_ty = !polynomial.polynomial<#ring>
88+
!poly_ty = !polynomial.polynomial<ring=#ring>
8989

9090
// CHECK-NOT: @test_invalid_intt
9191
// CHECK-NOT: polynomial.intt
@@ -99,7 +99,7 @@ func.func @test_invalid_intt(%0 : tensor<1024xi32, #ring1>) {
9999

100100
#my_poly = #polynomial.int_polynomial<-1 + x**1024>
101101
#ring = #polynomial.ring<coefficientType=i16, coefficientModulus=256:i16, polynomialModulus=#my_poly, primitiveRoot=31:i16>
102-
!poly_ty = !polynomial.polynomial<#ring>
102+
!poly_ty = !polynomial.polynomial<ring=#ring>
103103

104104
// CHECK-NOT: @test_invalid_intt
105105
// CHECK-NOT: polynomial.intt
@@ -114,7 +114,7 @@ func.func @test_invalid_intt(%0 : tensor<1025xi32, #ring>) {
114114

115115
#my_poly = #polynomial.int_polynomial<-1 + x**1024>
116116
#ring = #polynomial.ring<coefficientType=i16, coefficientModulus=256:i16, polynomialModulus=#my_poly>
117-
!poly_ty = !polynomial.polynomial<#ring>
117+
!poly_ty = !polynomial.polynomial<ring=#ring>
118118

119119
// CHECK-NOT: @test_invalid_ntt
120120
// CHECK-NOT: polynomial.ntt
@@ -129,7 +129,7 @@ func.func @test_invalid_ntt(%0 : !poly_ty) {
129129
#my_poly = #polynomial.int_polynomial<-1 + x**8>
130130
// A valid root is 31
131131
#ring = #polynomial.ring<coefficientType=i16, coefficientModulus=256:i16, polynomialModulus=#my_poly, primitiveRoot=32:i16>
132-
!poly_ty = !polynomial.polynomial<#ring>
132+
!poly_ty = !polynomial.polynomial<ring=#ring>
133133

134134
// CHECK-NOT: @test_invalid_intt
135135
// CHECK-NOT: polynomial.intt

mlir/test/Dialect/Polynomial/types.mlir

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,63 +2,63 @@
22

33
// CHECK-LABEL: func @test_types
44
// CHECK-SAME: !polynomial.polynomial<
5-
// CHECK-SAME: #polynomial.ring<
5+
// CHECK-SAME: ring = <
66
// CHECK-SAME: coefficientType = i32,
77
// CHECK-SAME: coefficientModulus = 2837465 : i32,
88
// CHECK-SAME: polynomialModulus = <1 + x**1024>>>
99
#my_poly = #polynomial.int_polynomial<1 + x**1024>
1010
#ring1 = #polynomial.ring<coefficientType = i32, coefficientModulus = 2837465 : i32, polynomialModulus=#my_poly>
11-
!ty = !polynomial.polynomial<#ring1>
11+
!ty = !polynomial.polynomial<ring=#ring1>
1212
func.func @test_types(%0: !ty) -> !ty {
1313
return %0 : !ty
1414
}
1515

1616

1717
// CHECK-LABEL: func @test_non_x_variable_64_bit
1818
// CHECK-SAME: !polynomial.polynomial<
19-
// CHECK-SAME: #polynomial.ring<
19+
// CHECK-SAME: ring = <
2020
// CHECK-SAME: coefficientType = i64,
2121
// CHECK-SAME: coefficientModulus = 2837465 : i64,
2222
// CHECK-SAME: polynomialModulus = <2 + 4x + x**3>>>
2323
#my_poly_2 = #polynomial.int_polynomial<t**3 + 4t + 2>
2424
#ring2 = #polynomial.ring<coefficientType = i64, coefficientModulus = 2837465 : i64, polynomialModulus=#my_poly_2>
25-
!ty2 = !polynomial.polynomial<#ring2>
25+
!ty2 = !polynomial.polynomial<ring=#ring2>
2626
func.func @test_non_x_variable_64_bit(%0: !ty2) -> !ty2 {
2727
return %0 : !ty2
2828
}
2929

3030

3131
// CHECK-LABEL: func @test_linear_poly
3232
// CHECK-SAME: !polynomial.polynomial<
33-
// CHECK-SAME: #polynomial.ring<
33+
// CHECK-SAME: ring = <
3434
// CHECK-SAME: coefficientType = i32,
3535
// CHECK-SAME: coefficientModulus = 12 : i32,
3636
// CHECK-SAME: polynomialModulus = <4x>>
3737
#my_poly_3 = #polynomial.int_polynomial<4x>
3838
#ring3 = #polynomial.ring<coefficientType = i32, coefficientModulus=12 : i32, polynomialModulus=#my_poly_3>
39-
!ty3 = !polynomial.polynomial<#ring3>
39+
!ty3 = !polynomial.polynomial<ring=#ring3>
4040
func.func @test_linear_poly(%0: !ty3) -> !ty3 {
4141
return %0 : !ty3
4242
}
4343

4444
// CHECK-LABEL: func @test_negative_leading_1
4545
// CHECK-SAME: !polynomial.polynomial<
46-
// CHECK-SAME: #polynomial.ring<
46+
// CHECK-SAME: ring = <
4747
// CHECK-SAME: coefficientType = i32,
4848
// CHECK-SAME: coefficientModulus = 2837465 : i32,
4949
// CHECK-SAME: polynomialModulus = <-1 + x**1024>>>
5050
#my_poly_4 = #polynomial.int_polynomial<-1 + x**1024>
5151
#ring4 = #polynomial.ring<coefficientType = i32, coefficientModulus = 2837465 : i32, polynomialModulus=#my_poly_4>
52-
!ty4 = !polynomial.polynomial<#ring4>
52+
!ty4 = !polynomial.polynomial<ring=#ring4>
5353
func.func @test_negative_leading_1(%0: !ty4) -> !ty4 {
5454
return %0 : !ty4
5555
}
5656

5757
// CHECK-LABEL: func @test_float_coefficients
58-
// CHECK-SAME: !polynomial.polynomial<#polynomial.ring<coefficientType = f32>>
58+
// CHECK-SAME: !polynomial.polynomial<ring = <coefficientType = f32>>
5959
#my_poly_5 = #polynomial.float_polynomial<0.5 + 1.6e03 x**1024>
6060
#ring5 = #polynomial.ring<coefficientType=f32>
61-
!ty5 = !polynomial.polynomial<#ring5>
61+
!ty5 = !polynomial.polynomial<ring=#ring5>
6262
func.func @test_float_coefficients(%0: !ty5) -> !ty5 {
6363
return %0 : !ty5
6464
}

0 commit comments

Comments
 (0)