-
Notifications
You must be signed in to change notification settings - Fork 14.9k
Open
Labels
Description
test commit: 98e8f01
Description:
The tosa.arithmetic_right_shift
operation should always yield a consistent result when applied to the same inputs. However, executing the same lowering sequence multiple times produces inconsistent results.
Steps to Reproduce:
Minimal MLIR program (test.mlir):
module {
func.func private @printMemrefI16(tensor<*xi16>) attributes {llvm.emit_c_interface}
func.func @main() {
%0 = "tosa.const"() <{values = dense<53> : tensor<2xi16>}> : () -> tensor<2xi16>
%1 = "tosa.const"() <{values = dense<10> : tensor<2xi16>}> : () -> tensor<2xi16>
%2 = tosa.arithmetic_right_shift %1, %0 {round = true} : (tensor<2xi16>, tensor<2xi16>) -> tensor<2xi16>
%cast = tensor.cast %2 : tensor<2xi16> to tensor<*xi16>
call @printMemrefI16(%cast) : (tensor<*xi16>) -> ()
return
}
}
Command:
/home/workdir/llvm-project/build/bin/mlir-opt test.mlir -pass-pipeline="builtin.module(func.func(tosa-to-linalg))" | \
/home/workdir/llvm-project-latest/build/bin/mlir-opt -tosa-to-arith \
-one-shot-bufferize="bufferize-function-boundaries=1" \
-convert-linalg-to-affine-loops \
-lower-affine \
-convert-scf-to-cf \
-convert-to-llvm | \
/home/workdir/llvm-project/build/bin/mlir-runner -e main -entry-point-result=void -shared-libs=/home/workdir/llvm-project/build/lib/libmlir_runner_utils.so
Output:
The results are inconsistent. Possible output include:
[0, 0]
[7134, -31124]
[10, 0]