1// RUN: mlir-opt %s | FileCheck %s 2 3// CHECK-LABEL: func @test_types 4// CHECK-SAME: !polynomial.polynomial< 5// CHECK-SAME: ring = < 6// CHECK-SAME: coefficientType = i32, 7// CHECK-SAME: coefficientModulus = 2837465 : i32, 8// CHECK-SAME: polynomialModulus = <1 + x**1024>>> 9#my_poly = #polynomial.int_polynomial<1 + x**1024> 10#ring1 = #polynomial.ring<coefficientType = i32, coefficientModulus = 2837465 : i32, polynomialModulus=#my_poly> 11!ty = !polynomial.polynomial<ring=#ring1> 12func.func @test_types(%0: !ty) -> !ty { 13 return %0 : !ty 14} 15 16 17// CHECK-LABEL: func @test_non_x_variable_64_bit 18// CHECK-SAME: !polynomial.polynomial< 19// CHECK-SAME: ring = < 20// CHECK-SAME: coefficientType = i64, 21// CHECK-SAME: coefficientModulus = 2837465 : i64, 22// CHECK-SAME: polynomialModulus = <2 + 4x + x**3>>> 23#my_poly_2 = #polynomial.int_polynomial<t**3 + 4t + 2> 24#ring2 = #polynomial.ring<coefficientType = i64, coefficientModulus = 2837465 : i64, polynomialModulus=#my_poly_2> 25!ty2 = !polynomial.polynomial<ring=#ring2> 26func.func @test_non_x_variable_64_bit(%0: !ty2) -> !ty2 { 27 return %0 : !ty2 28} 29 30 31// CHECK-LABEL: func @test_linear_poly 32// CHECK-SAME: !polynomial.polynomial< 33// CHECK-SAME: ring = < 34// CHECK-SAME: coefficientType = i32, 35// CHECK-SAME: coefficientModulus = 12 : i32, 36// CHECK-SAME: polynomialModulus = <4x>> 37#my_poly_3 = #polynomial.int_polynomial<4x> 38#ring3 = #polynomial.ring<coefficientType = i32, coefficientModulus=12 : i32, polynomialModulus=#my_poly_3> 39!ty3 = !polynomial.polynomial<ring=#ring3> 40func.func @test_linear_poly(%0: !ty3) -> !ty3 { 41 return %0 : !ty3 42} 43 44// CHECK-LABEL: func @test_negative_leading_1 45// CHECK-SAME: !polynomial.polynomial< 46// CHECK-SAME: ring = < 47// CHECK-SAME: coefficientType = i32, 48// CHECK-SAME: coefficientModulus = 2837465 : i32, 49// CHECK-SAME: polynomialModulus = <-1 + x**1024>>> 50#my_poly_4 = #polynomial.int_polynomial<-1 + x**1024> 51#ring4 = #polynomial.ring<coefficientType = i32, coefficientModulus = 2837465 : i32, polynomialModulus=#my_poly_4> 52!ty4 = !polynomial.polynomial<ring=#ring4> 53func.func @test_negative_leading_1(%0: !ty4) -> !ty4 { 54 return %0 : !ty4 55} 56 57// CHECK-LABEL: func @test_float_coefficients 58// CHECK-SAME: !polynomial.polynomial<ring = <coefficientType = f32>> 59#my_poly_5 = #polynomial.float_polynomial<0.5 + 1.6e03 x**1024> 60#ring5 = #polynomial.ring<coefficientType=f32> 61!ty5 = !polynomial.polynomial<ring=#ring5> 62func.func @test_float_coefficients(%0: !ty5) -> !ty5 { 63 return %0 : !ty5 64} 65 66