| // RUN: mlir-query %s -c "m getUsersByPredicate(anyOf(hasOpName(\"memref.alloc\"),isConstantOp()),anyOf(hasOpName(\"affine.load\"), hasOpName(\"memref.dealloc\")),true)" | FileCheck %s |
| |
| func.func @slice_depth1_loop_nest_with_offsets() { |
| %0 = memref.alloc() : memref<100xf32> |
| %cst = arith.constant 7.000000e+00 : f32 |
| affine.for %i0 = 0 to 16 { |
| %a0 = affine.apply affine_map<(d0) -> (d0 + 2)>(%i0) |
| affine.store %cst, %0[%a0] : memref<100xf32> |
| } |
| affine.for %i1 = 4 to 8 { |
| %a1 = affine.apply affine_map<(d0) -> (d0 - 1)>(%i1) |
| %1 = affine.load %0[%a1] : memref<100xf32> |
| } |
| return |
| } |
| |
| // CHECK: Match #1: |
| // CHECK: {{.*}}.mlir:4:8: note: "root" binds here |
| // CHECK: %[[ALLOC:.*]] = memref.alloc() : memref<100xf32> |
| |
| // CHECK: affine.store %cst, %0[%a0] : memref<100xf32> |
| |
| // CHECK: Match #2: |
| // CHECK: {{.*}}.mlir:5:10: note: "root" binds here |
| // CHECK: %[[CST:.*]] = arith.constant 7.000000e+00 : f32 |
| |
| // CHECK: affine.store %[[CST]], %0[%a0] : memref<100xf32> |