Add `RuntimeVerifiableOpInterface` implementations for the following ops. These were mostly copied from the respective memref implementations. Only the part that deals with offsets and strides was removed. * `tensor.cast`: `memref.cast` * `tensor.dim`: `memref.dim` * `tensor.extract`: `memref.load` * `tensor.insert`: `memref.store` * `tensor.extract_slice`: `memref.subview`
22 lines
700 B
MLIR
22 lines
700 B
MLIR
// RUN: mlir-opt %s -generate-runtime-verification \
|
|
// RUN: -one-shot-bufferize \
|
|
// RUN: -buffer-deallocation-pipeline \
|
|
// RUN: -test-cf-assert \
|
|
// RUN: -convert-to-llvm | \
|
|
// RUN: mlir-runner -e main -entry-point-result=void \
|
|
// RUN: -shared-libs=%mlir_runner_utils 2>&1 | \
|
|
// RUN: FileCheck %s
|
|
|
|
func.func @main() {
|
|
%c4 = arith.constant 4 : index
|
|
%tensor = tensor.empty() : tensor<1xf32>
|
|
|
|
// CHECK: ERROR: Runtime op verification failed
|
|
// CHECK-NEXT: "tensor.dim"(%{{.*}}, %{{.*}}) : (tensor<1xf32>, index) -> index
|
|
// CHECK-NEXT: ^ index is out of bounds
|
|
// CHECK-NEXT: Location: loc({{.*}})
|
|
%dim = tensor.dim %tensor, %c4 : tensor<1xf32>
|
|
|
|
return
|
|
}
|