blob: 17661178245088548ccc68a328b5cc1eb29fa085 [file] [log] [blame]
// RUN: mlir-opt %s -scf-loop-bufferization-preprocessing -one-shot-bufferize="bufferize-function-boundaries function-boundary-type-conversion=identity-layout-map" -canonicalize | FileCheck %s
// CHECK-LABEL: func @conflict_in_loop(
// CHECK-SAME: %[[A:.*]]: memref<10xf32>
func.func @conflict_in_loop(%A: tensor<10xf32>, %f: f32, %idx: index, %lb: index, %ub: index, %step: index) -> f32 {
// CHECK: scf.for %{{.*}} = %{{.*}} to %{{.*}} step %{{.*}} {
%r = scf.for %i = %lb to %ub step %step iter_args(%tA = %A) -> (tensor<10xf32>) {
// CHECK: %[[alloc:.*]] = memref.alloc()
// CHECK: memref.copy %[[A]], %[[alloc]]
// CHECK: memref.store %{{.*}}, %[[alloc]]
%0 = tensor.insert %f into %tA[%i] : tensor<10xf32>
// CHECK: %[[read:.*]] = memref.load %[[A]]
%read = tensor.extract %tA[%idx] : tensor<10xf32>
// CHECK: vector.print %[[read]]
vector.print %read : f32
// CHECK: memref.copy %[[alloc]], %[[A]]
scf.yield %0 : tensor<10xf32>
}
// CHECK: memref.load %[[A]]
%f0 = tensor.extract %r[%step] : tensor<10xf32>
return %f0 : f32
}