forked from OSchip/llvm-project
Make sure that fusion test cases don't have out of bounds accesses
- fix out of bounds test case - -memref-bound-check on the test/Transforms/loop-fusion.mlir no longer reports any errors, before or after -loop-fusion is run PiperOrigin-RevId: 236757658
This commit is contained in:
parent
39a1ddeb1c
commit
a77734e185
|
@ -1821,10 +1821,10 @@ func @should_fuse_live_out_writer(%arg0 : memref<10xf32>) -> memref<10xf32> {
|
||||||
#map = (d0, d1) -> (d0 * 16 + d1)
|
#map = (d0, d1) -> (d0 * 16 + d1)
|
||||||
|
|
||||||
// CHECK-LABEL: slice_tile
|
// CHECK-LABEL: slice_tile
|
||||||
func @slice_tile(%arg1: memref<32x8xf32>, %arg2: memref<32x8xf32>, %0 : f32) -> memref<32x8xf32> {
|
func @slice_tile(%arg0: memref<128x8xf32>, %arg1: memref<32x8xf32>, %0 : f32) -> memref<32x8xf32> {
|
||||||
for %i0 = 0 to 32 {
|
for %i0 = 0 to 32 {
|
||||||
for %i1 = 0 to 8 {
|
for %i1 = 0 to 8 {
|
||||||
store %0, %arg2[%i0, %i1] : memref<32x8xf32>
|
store %0, %arg1[%i0, %i1] : memref<32x8xf32>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for %i = 0 to 2 {
|
for %i = 0 to 2 {
|
||||||
|
@ -1832,19 +1832,19 @@ func @slice_tile(%arg1: memref<32x8xf32>, %arg2: memref<32x8xf32>, %0 : f32) ->
|
||||||
for %k = 0 to 8 {
|
for %k = 0 to 8 {
|
||||||
for %kk = 0 to 16 {
|
for %kk = 0 to 16 {
|
||||||
%1 = affine.apply #map(%k, %kk)
|
%1 = affine.apply #map(%k, %kk)
|
||||||
%2 = load %arg1[%1, %j] : memref<32x8xf32>
|
%2 = load %arg0[%1, %j] : memref<128x8xf32>
|
||||||
%3 = "foo"(%2) : (f32) -> f32
|
%3 = "foo"(%2) : (f32) -> f32
|
||||||
}
|
}
|
||||||
for %ii = 0 to 16 {
|
for %ii = 0 to 16 {
|
||||||
%6 = affine.apply #map(%i, %ii)
|
%6 = affine.apply #map(%i, %ii)
|
||||||
%7 = load %arg2[%6, %j] : memref<32x8xf32>
|
%7 = load %arg1[%6, %j] : memref<32x8xf32>
|
||||||
%8 = addf %7, %7 : f32
|
%8 = addf %7, %7 : f32
|
||||||
store %8, %arg2[%6, %j] : memref<32x8xf32>
|
store %8, %arg1[%6, %j] : memref<32x8xf32>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return %arg2 : memref<32x8xf32>
|
return %arg1 : memref<32x8xf32>
|
||||||
}
|
}
|
||||||
// CHECK: for %i0 = 0 to 2 {
|
// CHECK: for %i0 = 0 to 2 {
|
||||||
// CHECK-NEXT: for %i1 = 0 to 8 {
|
// CHECK-NEXT: for %i1 = 0 to 8 {
|
||||||
|
@ -1854,7 +1854,7 @@ func @slice_tile(%arg1: memref<32x8xf32>, %arg2: memref<32x8xf32>, %0 : f32) ->
|
||||||
// CHECK-NEXT: for %i3 = 0 to 8 {
|
// CHECK-NEXT: for %i3 = 0 to 8 {
|
||||||
// CHECK-NEXT: for %i4 = 0 to 16 {
|
// CHECK-NEXT: for %i4 = 0 to 16 {
|
||||||
// CHECK-NEXT: %0 = affine.apply #map{{[0-9]+}}(%i3, %i4)
|
// CHECK-NEXT: %0 = affine.apply #map{{[0-9]+}}(%i3, %i4)
|
||||||
// CHECK-NEXT: %1 = load %arg0[%0, %i1] : memref<32x8xf32>
|
// CHECK-NEXT: %1 = load %arg0[%0, %i1] : memref<128x8xf32>
|
||||||
// CHECK-NEXT: %2 = "foo"(%1) : (f32) -> f32
|
// CHECK-NEXT: %2 = "foo"(%1) : (f32) -> f32
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: for %i5 = 0 to 16 {
|
// CHECK-NEXT: for %i5 = 0 to 16 {
|
||||||
|
|
Loading…
Reference in New Issue