Type materialization bug when lowering polynomial to standard
- Dominant language
- MLIR
- Stars
- 906
- Forks
- 171
- Avg merge
- 4d 12h
- Merged PRs (30d)
- 32
Description
The following code fails when run with `--polynomial-to-standard` and `--heir-polynomial-to-llvm`
```mlir
// Regression test for https://github.com/google/heir/issues/505
// RUN: heir-opt --polynomial-to-standard %s | FileCheck %s
func.func @test_bin_ops(%arg0: memref<2x!polynomial.polynomial<>>>, %arg1: memref<2x!polynomial.polynomial<>>>) -> memref<2x!polynomial.polynomial<>>> {
%alloc = memref.alloc() {alignment = 64 : i64} : memref<2x!polynomial.polynomial<>>>
affine.for %arg2 = 0 to 2 {
%3 = affine.load %arg0[%arg2] : memref<2x!polynomial.polynomial<>>>>
%4 = affine.load %arg1[%arg2] : memref<2x!polynomial.polynomial<>>>>
%5 = polynomial.add(%3, %4) : !polynomial.polynomial<>>
affine.store %5, %alloc[%arg2] : memref<2x!polynomial.polynomial<>>>
}
return %alloc : memref<2x!polynomial.polynomial<>>>
}
```
Error:
```
/home/j2kun/fhe/heir/tests/polynomial/issue_505.mlir:8:22: error: use of value '%arg0' expects different type than prior uses: 'memref<2x!polynomial.polynomial<>>>' vs 'memref<2x!polynomial.polynomial<>>>'
%3 = affine.load %arg0[%arg2] : memref<2x!polynomial.polynomial<>>>
^
/home/j2kun/fhe/heir/tests/polynomial/issue_505.mlir:5:25: note: prior use here
func.func @test_bin_ops(%arg0: memref<2x!polynomial.polynomial<>>>, %arg1: memref<2x!polynomial.polynomial<>>>) -> memref<2x!polynomial.polynomial<>>> {
```
Contributor guide
Assessment
This issue has not been assessed yet.