google / google/heir

Type materialization bug when lowering polynomial to standard

Open
#505 2 comments 0 reactions 0 assignees View on GitHub
bug dialect: polynomial
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.