[flang-commits] [flang] [llvm] [mlir] [do not merge] Remove offset from the memref type and treat it as always dynamic. (PR #192644)

via flang-commits flang-commits at lists.llvm.org
Fri Apr 17 06:10:16 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 7758 tests passed
* 663 tests skipped
* 7 tests failed

## Failed Tests
(click on a test name to see its output)

### MLIR
<details>
<summary>MLIR.Dialect/MemRef/fold-memref-alias-ops.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\mlir-opt.exe -fold-memref-alias-ops -split-input-file C:\_work\llvm-project\llvm-project\mlir\test\Dialect\MemRef\fold-memref-alias-ops.mlir | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\mlir\test\Dialect\MemRef\fold-memref-alias-ops.mlir
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\mlir-opt.exe' -fold-memref-alias-ops -split-input-file 'C:\_work\llvm-project\llvm-project\mlir\test\Dialect\MemRef\fold-memref-alias-ops.mlir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\mlir\test\Dialect\MemRef\fold-memref-alias-ops.mlir:514:121: error: expected '>'
# | func.func @subview_of_subview_no_unit_stride(%arg0: memref<8x8xf32, strided<[8, 1]>>) -> memref<2x2xf32, strided<[32, 4], offset: 27>> {
# |                                                                                                                         ^
# | C:\_work\llvm-project\llvm-project\mlir\test\Dialect\MemRef\fold-memref-alias-ops.mlir:525:129: error: expected '>'
# | func.func @subview_of_subview_rank_reducing_no_unit_stride(%arg0: memref<8x8xf32, strided<[8, 1]>>) -> memref<2xf32, strided<[4], offset: 27>> {
# |                                                                                                                                 ^
# `-----------------------------
# error: command failed with exit status: 1
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\mlir\test\Dialect\MemRef\fold-memref-alias-ops.mlir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\mlir\test\Dialect\MemRef\fold-memref-alias-ops.mlir:511:17: error: CHECK-LABEL: expected string not found in input
# | // CHECK-LABEL: func.func @subview_of_subview_no_unit_stride(
# |                 ^
# | <stdin>:248:46: note: scanning from here
# |  func.func @subview_of_subview_rank_reducing(%arg0: memref<?x?x?xf32>, %arg1: index, %arg2: index) -> memref<f32, strided<[]>> {
# |                                              ^
# | <stdin>:292:2: note: possible intended match here
# |  func.func @fold_gpu_subgroup_mma_load_matrix_1d(%arg0: memref<?xvector<4xf32>>, %arg1: index, %arg2: index) -> !gpu.mma_matrix<16x16xf16, "COp"> {
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\mlir\test\Dialect\MemRef\fold-memref-alias-ops.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            243:  } 
# |            244: } 
# |            245:  
# |            246: // ----- 
# |            247: module { 
# |            248:  func.func @subview_of_subview_rank_reducing(%arg0: memref<?x?x?xf32>, %arg1: index, %arg2: index) -> memref<f32, strided<[]>> { 
# | label:511'0                                                  X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |            249:  %subview = memref.subview %arg0[3, 7, 8] [1, 1, 1] [1, 1, 1] : memref<?x?x?xf32> to memref<f32, strided<[]>> 
# | label:511'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            250:  return %subview : memref<f32, strided<[]>> 
# | label:511'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            251:  } 
# | label:511'0     ~~~
# |            252: } 
# | label:511'0     ~~
# |            253:  
# | label:511'0     ~
# |              .
# |              .
# |              .
# |            287: } 
# | label:511'0     ~~
# |            288:  
# | label:511'0     ~
# |            289: // ----- 
# | label:511'0     ~~~~~~~~~
# |            290: #map = affine_map<()[s0, s1] -> (s0 + s1)> 
# | label:511'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            291: module { 
# | label:511'0     ~~~~~~~~~
# |            292:  func.func @fold_gpu_subgroup_mma_load_matrix_1d(%arg0: memref<?xvector<4xf32>>, %arg1: index, %arg2: index) -> !gpu.mma_matrix<16x16xf16, "COp"> { 
# | label:511'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | label:511'1      ?                                                                                                                                                   possible intended match
# |            293:  %0 = affine.apply #map()[%arg1, %arg2] 
# | label:511'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            294:  %1 = gpu.subgroup_mma_load_matrix %arg0[%0] {leadDimension = 160 : index} : memref<?xvector<4xf32>> -> !gpu.mma_matrix<16x16xf16, "COp"> 
# | label:511'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            295:  return %1 : !gpu.mma_matrix<16x16xf16, "COp"> 
# | label:511'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            296:  } 
# | label:511'0     ~~~
# |            297: } 
# | label:511'0     ~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

### Flang
<details>
<summary>Flang.Transforms/FIRToMemRef/array-coor-block-arg.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 7
fir-opt C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\array-coor-block-arg.mlir --fir-to-memref --allow-unregistered-dialect | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\array-coor-block-arg.mlir
# executed command: fir-opt 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\array-coor-block-arg.mlir' --fir-to-memref --allow-unregistered-dialect
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\array-coor-block-arg.mlir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\array-coor-block-arg.mlir:44:11: error: CHECK: expected string not found in input
# | // CHECK: memref.store {{%.+}}, {{%.+}}[{{%.+}}] : memref<?xi32, strided<[?], offset: ?>>
# |           ^
# | <stdin>:21:70: note: scanning from here
# |  %1 = fir.convert %0 : (!fir.ref<!fir.array<?xi32>>) -> memref<?xi32>
# |                                                                      ^
# | <stdin>:35:22: note: possible intended match here
# |  memref.store %c1_i32, %reinterpret_cast[%5] : memref<?xi32, strided<[?]>>
# |                      ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\array-coor-block-arg.mlir:64:16: error: CHECK-SAME: expected string not found in input
# | // CHECK-SAME: : memref<5xi32> to memref<?xi32, strided<[?], offset: ?>>
# |                ^
# | <stdin>:55:48: note: scanning from here
# |  %reinterpret_cast = memref.reinterpret_cast %1 to offset: [%c0_1], sizes: [%7#1], strides: [%8] : memref<5xi32> to memref<?xi32, strided<[?]>>
# |                                                ^
# | <stdin>:55:98: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %1 to offset: [%c0_1], sizes: [%7#1], strides: [%8] : memref<5xi32> to memref<?xi32, strided<[?]>>
# |                                                                                                  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\array-coor-block-arg.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            16:  } 
# |            17:  func.func @block_arg_boxed_array(%arg0: !fir.box<!fir.array<?xi32>>) { 
# |            18:  %c1_i32 = arith.constant 1 : i32 
# |            19:  %c1_i64 = arith.constant 1 : i64 
# |            20:  %0 = fir.box_addr %arg0 : (!fir.box<!fir.array<?xi32>>) -> !fir.ref<!fir.array<?xi32>> 
# |            21:  %1 = fir.convert %0 : (!fir.ref<!fir.array<?xi32>>) -> memref<?xi32> 
# | check:44'0                                                                          X error: no match found
# |            22:  %c1 = arith.constant 1 : index 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            23:  %c0 = arith.constant 0 : index 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            24:  %c1_0 = arith.constant 1 : index 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            25:  %2 = arith.subi %c1_0, %c1 : index 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            26:  %3 = arith.muli %2, %c1 : index 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            30:  %c0_1 = arith.constant 0 : index 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            31:  %7:3 = fir.box_dims %arg0, %c0_1 : (!fir.box<!fir.array<?xi32>>, index) -> (index, index, index) 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            32:  %8 = arith.divsi %7#2, %6 : index 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            33:  %c0_2 = arith.constant 0 : index 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            34:  %reinterpret_cast = memref.reinterpret_cast %1 to offset: [%c0_2], sizes: [%7#1], strides: [%8] : memref<?xi32> to memref<?xi32, strided<[?]>> 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            35:  memref.store %c1_i32, %reinterpret_cast[%5] : memref<?xi32, strided<[?]>> 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:44'1                          ?                                                      possible intended match
# |            36:  return 
# | check:44'0     ~~~~~~~~
# |            37:  } 
# | check:44'0     ~~~
# |            38:  func.func @block_arg_boxed_static_array(%arg0: !fir.box<!fir.array<5xi32>>) { 
# | check:44'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            39:  %c1_i32 = arith.constant 1 : i32 
# |            40:  %c2_i64 = arith.constant 2 : i64 
# |             .
# |             .
# |             .
# |            50:  %6 = fir.box_elesize %arg0 : (!fir.box<!fir.array<5xi32>>) -> index 
# |            51:  %c0_0 = arith.constant 0 : index 
# |            52:  %7:3 = fir.box_dims %arg0, %c0_0 : (!fir.box<!fir.array<5xi32>>, index) -> (index, index, index) 
# |            53:  %8 = arith.divsi %7#2, %6 : index 
# |            54:  %c0_1 = arith.constant 0 : index 
# |            55:  %reinterpret_cast = memref.reinterpret_cast %1 to offset: [%c0_1], sizes: [%7#1], strides: [%8] : memref<5xi32> to memref<?xi32, strided<[?]>> 
# | same:64'0                                                     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | same:64'1                                                                                                       ?                                               possible intended match
# |            56:  memref.store %c1_i32, %reinterpret_cast[%5] : memref<?xi32, strided<[?]>> 
# | same:64'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            57:  return 
# | same:64'0      ~~~~~~~~
# |            58:  } 
# | same:64'0      ~~~
# |            59: } 
# | same:64'0      ~~
# |            60:  
# | same:64'0      ~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Flang.Transforms/FIRToMemRef/load-dynamic-shape.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
fir-opt C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-dynamic-shape.mlir --fir-to-memref --allow-unregistered-dialect | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-dynamic-shape.mlir
# executed command: fir-opt 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-dynamic-shape.mlir' --fir-to-memref --allow-unregistered-dialect
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-dynamic-shape.mlir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-dynamic-shape.mlir:25:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET:%.+]] = memref.reinterpret_cast [[CONVERT]] to offset: [[[CONST0_0]]], sizes: [[[DIMS]]#1], strides: [[[DIV]]] : memref<?xf32> to memref<?xf32, strided<[?], offset: ?>>
# |           ^
# | <stdin>:19:34: note: scanning from here
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:19:34: note: with "CONVERT" equal to "%4"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:19:34: note: with "CONST0_0" equal to "%c0_1"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:19:34: note: with "DIMS" equal to "%10"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:19:34: note: with "DIV" equal to "%11"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:20:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_1], sizes: [%10#1], strides: [%11] : memref<?xf32> to memref<?xf32, strided<[?]>>
# |              ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-dynamic-shape.mlir:68:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET:%.+]] = memref.reinterpret_cast [[CONVERT]] to offset: [[[CONST0_1]]], sizes: [[[DIMS1]]#1, [[DIMS0]]#1], strides: [[[DIV1]], [[DIV0]]] : memref<?x?xf32> to memref<?x?xf32, strided<[?, ?], offset: ?>>
# |           ^
# | <stdin>:49:34: note: scanning from here
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:49:34: note: with "CONVERT" equal to "%4"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:49:34: note: with "CONST0_1" equal to "%c0_2"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:49:34: note: with "DIMS1" equal to "%14"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:49:34: note: with "DIMS0" equal to "%16"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:49:34: note: with "DIV1" equal to "%15"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:49:34: note: with "DIV0" equal to "%17"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:50:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_2], sizes: [%14#1, %16#1], strides: [%15, %17] : memref<?x?xf32> to memref<?x?xf32, strided<[?, ?]>>
# |              ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-dynamic-shape.mlir:119:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET:%.+]] = memref.reinterpret_cast [[CONVERT]] to offset: [[[CONST0_2]]], sizes: [[[DIMS2]]#1, [[DIMS1]]#1, [[DIMS0]]#1], strides: [[[DIV2]], [[DIV1]], [[DIV0]]] : memref<?x?x?xf32> to memref<?x?x?xf32, strided<[?, ?, ?], offset: ?>>
# |           ^
# | <stdin>:86:34: note: scanning from here
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:86:34: note: with "CONVERT" equal to "%4"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:86:34: note: with "CONST0_2" equal to "%c0_3"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:86:34: note: with "DIMS2" equal to "%18"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:86:34: note: with "DIMS1" equal to "%20"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:86:34: note: with "DIMS0" equal to "%22"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:86:34: note: with "DIV2" equal to "%19"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:86:34: note: with "DIV1" equal to "%21"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:86:34: note: with "DIV0" equal to "%23"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-dynamic-shape.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             14:  %8 = arith.addi %6, %7 : index 
# |             15:  %9 = fir.box_elesize %2 : (!fir.box<!fir.array<?xf32>>) -> index 
# |             16:  %c0_0 = arith.constant 0 : index 
# |             17:  %10:3 = fir.box_dims %2, %c0_0 : (!fir.box<!fir.array<?xf32>>, index) -> (index, index, index) 
# |             18:  %11 = arith.divsi %10#2, %9 : index 
# |             19:  %c0_1 = arith.constant 0 : index 
# | check:25'0                                       X error: no match found
# | check:25'1                                         with "CONVERT" equal to "%4"
# | check:25'2                                         with "CONST0_0" equal to "%c0_1"
# | check:25'3                                         with "DIMS" equal to "%10"
# | check:25'4                                         with "DIV" equal to "%11"
# |             20:  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_1], sizes: [%10#1], strides: [%11] : memref<?xf32> to memref<?xf32, strided<[?]>> 
# | check:25'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:25'5                   ?                                                                                                                                     possible intended match
# |             21:  %12 = memref.load %reinterpret_cast[%8] : memref<?xf32, strided<[?]>> 
# | check:25'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             22:  return 
# | check:25'0      ~~~~~~~~
# |             23:  } 
# | check:25'0      ~~~
# |             24:  func.func @load_dynamic_2d(%arg0: !fir.box<!fir.array<?x?xf32>> {fir.bindc_name = "x"}) { 
# | check:25'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             25:  %c3 = arith.constant 3 : index 
# |              .
# |              .
# |              .
# |             44:  %14:3 = fir.box_dims %2, %c1_0 : (!fir.box<!fir.array<?x?xf32>>, index) -> (index, index, index) 
# |             45:  %15 = arith.divsi %14#2, %13 : index 
# |             46:  %c0_1 = arith.constant 0 : index 
# |             47:  %16:3 = fir.box_dims %2, %c0_1 : (!fir.box<!fir.array<?x?xf32>>, index) -> (index, index, index) 
# |             48:  %17 = arith.divsi %16#2, %13 : index 
# |             49:  %c0_2 = arith.constant 0 : index 
# | check:68'0                                       X error: no match found
# | check:68'1                                         with "CONVERT" equal to "%4"
# | check:68'2                                         with "CONST0_1" equal to "%c0_2"
# | check:68'3                                         with "DIMS1" equal to "%14"
# | check:68'4                                         with "DIMS0" equal to "%16"
# | check:68'5                                         with "DIV1" equal to "%15"
# | check:68'6                                         with "DIV0" equal to "%17"
# |             50:  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_2], sizes: [%14#1, %16#1], strides: [%15, %17] : memref<?x?xf32> to memref<?x?xf32, strided<[?, ?]>> 
# | check:68'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:68'7                   ?                                                                                                                                                        possible intended match
# |             51:  %18 = memref.load %reinterpret_cast[%12, %8] : memref<?x?xf32, strided<[?, ?]>> 
# | check:68'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             52:  return 
# | check:68'0      ~~~~~~~~
# |             53:  } 
# | check:68'0      ~~~
# |             54:  func.func @load_dynamic_3d(%arg0: !fir.box<!fir.array<?x?x?xf32>> {fir.bindc_name = "x"}) { 
# | check:68'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             55:  %c3 = arith.constant 3 : index 
# |              .
# |              .
# |              .
# |             81:  %20:3 = fir.box_dims %2, %c1_1 : (!fir.box<!fir.array<?x?x?xf32>>, index) -> (index, index, index) 
# |             82:  %21 = arith.divsi %20#2, %17 : index 
# |             83:  %c0_2 = arith.constant 0 : index 
# |             84:  %22:3 = fir.box_dims %2, %c0_2 : (!fir.box<!fir.array<?x?x?xf32>>, index) -> (index, index, index) 
# |             85:  %23 = arith.divsi %22#2, %17 : index 
# |             86:  %c0_3 = arith.constant 0 : index 
# | check:119'0                                      X error: no match found
# | check:119'1                                        with "CONVERT" equal to "%4"
# | check:119'2                                        with "CONST0_2" equal to "%c0_3"
# | check:119'3                                        with "DIMS2" equal to "%18"
# | check:119'4                                        with "DIMS1" equal to "%20"
# | check:119'5                                        with "DIMS0" equal to "%22"
# | check:119'6                                        with "DIV2" equal to "%19"
# | check:119'7                                        with "DIV1" equal to "%21"
# | check:119'8                                        with "DIV0" equal to "%23"
# |             87:  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_3], sizes: [%18#1, %20#1, %22#1], strides: [%19, %21, %23] : memref<?x?x?xf32> to memref<?x?x?xf32, strided<[?, ?, ?]>> 
# | check:119'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             88:  %24 = memref.load %reinterpret_cast[%16, %12, %8] : memref<?x?x?xf32, strided<[?, ?, ?]>> 
# | check:119'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             89:  return 
# | check:119'0     ~~~~~~~~
# |             90:  } 
# | check:119'0     ~~~
# |             91: } 
# | check:119'0     ~~
# |             92:  
# | check:119'0     ~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Flang.Transforms/FIRToMemRef/load-shift-dynamic.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
fir-opt C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-shift-dynamic.mlir --fir-to-memref --allow-unregistered-dialect | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-shift-dynamic.mlir
# executed command: fir-opt 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-shift-dynamic.mlir' --fir-to-memref --allow-unregistered-dialect
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-shift-dynamic.mlir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-shift-dynamic.mlir:33:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET_CAST:%.*]] = memref.reinterpret_cast [[CONVERT]] to offset: [[[C0_0]]], sizes: [[[BOX_DIMS]]#1], strides: [[[DIVSI]]] : memref<?xf32> to memref<?xf32, strided<[?], offset: ?>>
# |           ^
# | <stdin>:22:34: note: scanning from here
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:22:34: note: with "CONVERT" equal to "%6"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:22:34: note: with "C0_0" equal to "%c0_1"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:22:34: note: with "BOX_DIMS" equal to "%12"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:22:34: note: with "DIVSI" equal to "%13"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:23:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %6 to offset: [%c0_1], sizes: [%12#1], strides: [%13] : memref<?xf32> to memref<?xf32, strided<[?]>>
# |              ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-shift-dynamic.mlir:86:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET_CAST:%.*]] = memref.reinterpret_cast [[CONVERT]] to offset: [[[C0_1]]], sizes: [[[BOX_DIMS1]]#1, [[BOX_DIMS2]]#1], strides: [[[DIVSI1]], [[DIVSI2]]] : memref<?x?xf32> to memref<?x?xf32, strided<[?, ?], offset: ?>>
# |           ^
# | <stdin>:57:34: note: scanning from here
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:57:34: note: with "CONVERT" equal to "%7"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:57:34: note: with "C0_1" equal to "%c0_2"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:57:34: note: with "BOX_DIMS1" equal to "%17"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:57:34: note: with "BOX_DIMS2" equal to "%19"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:57:34: note: with "DIVSI1" equal to "%18"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:57:34: note: with "DIVSI2" equal to "%20"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:58:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %7 to offset: [%c0_2], sizes: [%17#1, %19#1], strides: [%18, %20] : memref<?x?xf32> to memref<?x?xf32, strided<[?, ?]>>
# |              ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-shift-dynamic.mlir:151:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET_CAST:%.*]] = memref.reinterpret_cast [[CONVERT]] to offset: [[[C0_1]]], sizes: [[[BOX_DIMS1]]#1, [[BOX_DIMS2]]#1, [[BOX_DIMS3]]#1], strides: [[[DIVSI1]], [[DIVSI2]], [[DIVSI3]]] : memref<?x?x?xf32> to memref<?x?x?xf32, strided<[?, ?, ?], offset: ?>>
# |           ^
# | <stdin>:101:34: note: scanning from here
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:101:34: note: with "CONVERT" equal to "%8"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:101:34: note: with "C0_1" equal to "%c0_2"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:101:34: note: with "BOX_DIMS1" equal to "%22"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:101:34: note: with "BOX_DIMS2" equal to "%24"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:101:34: note: with "BOX_DIMS3" equal to "%26"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:101:34: note: with "DIVSI1" equal to "%23"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:101:34: note: with "DIVSI2" equal to "%25"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:101:34: note: with "DIVSI3" equal to "%27"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\load-shift-dynamic.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             17:  %10 = arith.addi %8, %9 : index 
# |             18:  %11 = fir.box_elesize %4 : (!fir.box<!fir.array<?xf32>>) -> index 
# |             19:  %c0_0 = arith.constant 0 : index 
# |             20:  %12:3 = fir.box_dims %4, %c0_0 : (!fir.box<!fir.array<?xf32>>, index) -> (index, index, index) 
# |             21:  %13 = arith.divsi %12#2, %11 : index 
# |             22:  %c0_1 = arith.constant 0 : index 
# | check:33'0                                       X error: no match found
# | check:33'1                                         with "CONVERT" equal to "%6"
# | check:33'2                                         with "C0_0" equal to "%c0_1"
# | check:33'3                                         with "BOX_DIMS" equal to "%12"
# | check:33'4                                         with "DIVSI" equal to "%13"
# |             23:  %reinterpret_cast = memref.reinterpret_cast %6 to offset: [%c0_1], sizes: [%12#1], strides: [%13] : memref<?xf32> to memref<?xf32, strided<[?]>> 
# | check:33'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:33'5                   ?                                                                                                                                     possible intended match
# |             24:  %14 = memref.load %reinterpret_cast[%10] : memref<?xf32, strided<[?]>> 
# | check:33'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             25:  return 
# | check:33'0      ~~~~~~~~
# |             26:  } 
# | check:33'0      ~~~
# |             27:  func.func @load_shift_2d(%arg0: !fir.box<!fir.array<?x?xf32>> {fir.bindc_name = "x"}) { 
# | check:33'0      ~~~~~~~~~~~~~~~~~~~~~~~~~
# |             28:  %c7 = arith.constant 7 : index 
# |              .
# |              .
# |              .
# |             52:  %17:3 = fir.box_dims %5, %c1_0 : (!fir.box<!fir.array<?x?xf32>>, index) -> (index, index, index) 
# |             53:  %18 = arith.divsi %17#2, %16 : index 
# |             54:  %c0_1 = arith.constant 0 : index 
# |             55:  %19:3 = fir.box_dims %5, %c0_1 : (!fir.box<!fir.array<?x?xf32>>, index) -> (index, index, index) 
# |             56:  %20 = arith.divsi %19#2, %16 : index 
# |             57:  %c0_2 = arith.constant 0 : index 
# | check:86'0                                       X error: no match found
# | check:86'1                                         with "CONVERT" equal to "%7"
# | check:86'2                                         with "C0_1" equal to "%c0_2"
# | check:86'3                                         with "BOX_DIMS1" equal to "%17"
# | check:86'4                                         with "BOX_DIMS2" equal to "%19"
# | check:86'5                                         with "DIVSI1" equal to "%18"
# | check:86'6                                         with "DIVSI2" equal to "%20"
# |             58:  %reinterpret_cast = memref.reinterpret_cast %7 to offset: [%c0_2], sizes: [%17#1, %19#1], strides: [%18, %20] : memref<?x?xf32> to memref<?x?xf32, strided<[?, ?]>> 
# | check:86'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:86'7                   ?                                                                                                                                                        possible intended match
# |             59:  %21 = memref.load %reinterpret_cast[%15, %11] : memref<?x?xf32, strided<[?, ?]>> 
# | check:86'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             60:  return 
# | check:86'0      ~~~~~~~~
# |             61:  } 
# | check:86'0      ~~~
# |             62:  func.func @load_shift_3d(%arg0: !fir.box<!fir.array<?x?x?xf32>> {fir.bindc_name = "x"}) { 
# | check:86'0      ~~~~~~~~~~~~~~~~~~~~~~~~~
# |             63:  %c10 = arith.constant 10 : index 
# |              .
# |              .
# |              .
# |             96:  %24:3 = fir.box_dims %6, %c1_0 : (!fir.box<!fir.array<?x?x?xf32>>, index) -> (index, index, index) 
# |             97:  %25 = arith.divsi %24#2, %21 : index 
# |             98:  %c0_1 = arith.constant 0 : index 
# |             99:  %26:3 = fir.box_dims %6, %c0_1 : (!fir.box<!fir.array<?x?x?xf32>>, index) -> (index, index, index) 
# |            100:  %27 = arith.divsi %26#2, %21 : index 
# |            101:  %c0_2 = arith.constant 0 : index 
# | check:151'0                                      X error: no match found
# | check:151'1                                        with "CONVERT" equal to "%8"
# | check:151'2                                        with "C0_1" equal to "%c0_2"
# | check:151'3                                        with "BOX_DIMS1" equal to "%22"
# | check:151'4                                        with "BOX_DIMS2" equal to "%24"
# | check:151'5                                        with "BOX_DIMS3" equal to "%26"
# | check:151'6                                        with "DIVSI1" equal to "%23"
# | check:151'7                                        with "DIVSI2" equal to "%25"
# | check:151'8                                        with "DIVSI3" equal to "%27"
# |            102:  %reinterpret_cast = memref.reinterpret_cast %8 to offset: [%c0_2], sizes: [%22#1, %24#1, %26#1], strides: [%23, %25, %27] : memref<?x?x?xf32> to memref<?x?x?xf32, strided<[?, ?, ?]>> 
# | check:151'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            103:  %28 = memref.load %reinterpret_cast[%20, %16, %12] : memref<?x?x?xf32, strided<[?, ?, ?]>> 
# | check:151'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            104:  return 
# | check:151'0     ~~~~~~~~
# |            105:  } 
# | check:151'0     ~~~
# |            106: } 
# | check:151'0     ~~
# |            107:  
# | check:151'0     ~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Flang.Transforms/FIRToMemRef/slice-projected.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
fir-opt C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice-projected.mlir --fir-to-memref --allow-unregistered-dialect | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice-projected.mlir
# executed command: fir-opt 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice-projected.mlir' --fir-to-memref --allow-unregistered-dialect
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice-projected.mlir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice-projected.mlir:51:11: error: CHECK: expected string not found in input
# | // CHECK: [[VIEW:%.*]] = memref.reinterpret_cast [[CONVERT]] to offset: {{\[}}[[C0_1]]{{\]}}, sizes: {{\[}}[[DIMS]]#1{{\]}}, strides: {{\[}}[[STRIDE]]{{\]}} : memref<4xf32> to memref<?xf32, strided<[?], offset: ?>>
# |           ^
# | <stdin>:22:34: note: scanning from here
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:22:34: note: with "CONVERT" equal to "%4"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:22:34: note: with "C0_1" equal to "%c0_3"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:22:34: note: with "DIMS" equal to "%10"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:22:34: note: with "STRIDE" equal to "%11"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:23:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_3], sizes: [%10#1], strides: [%11] : memref<4xf32> to memref<?xf32, strided<[?]>>
# |              ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice-projected.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            17:  %8 = arith.addi %6, %7 : index 
# |            18:  %9 = fir.box_elesize %2 : (!fir.box<!fir.array<4xf32>>) -> index 
# |            19:  %c0_2 = arith.constant 0 : index 
# |            20:  %10:3 = fir.box_dims %2, %c0_2 : (!fir.box<!fir.array<4xf32>>, index) -> (index, index, index) 
# |            21:  %11 = arith.divsi %10#2, %9 : index 
# |            22:  %c0_3 = arith.constant 0 : index 
# | check:51'0                                      X error: no match found
# | check:51'1                                        with "CONVERT" equal to "%4"
# | check:51'2                                        with "C0_1" equal to "%c0_3"
# | check:51'3                                        with "DIMS" equal to "%10"
# | check:51'4                                        with "STRIDE" equal to "%11"
# |            23:  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_3], sizes: [%10#1], strides: [%11] : memref<4xf32> to memref<?xf32, strided<[?]>> 
# | check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:51'5                  ?                                                                                                                                     possible intended match
# |            24:  %12 = memref.load %reinterpret_cast[%8] : memref<?xf32, strided<[?]>> 
# | check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            25:  } 
# | check:51'0     ~~~
# |            26:  return 
# | check:51'0     ~~~~~~~~
# |            27:  } 
# | check:51'0     ~~~
# |            28:  func.func @derived_component_not_projected(%arg0: !fir.ref<!fir.array<4x!fir.type<T{x:f64,y:complex<f64>}>>>) { 
# | check:51'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Flang.Transforms/FIRToMemRef/slice.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
fir-opt C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice.mlir --fir-to-memref --allow-unregistered-dialect | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice.mlir
# executed command: fir-opt 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice.mlir' --fir-to-memref --allow-unregistered-dialect
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice.mlir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice.mlir:60:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET:%.*]] = memref.reinterpret_cast [[CONVERT]] to offset: [%[[C0_6]]], sizes: [%[[C7]], %[[C5]]], strides: [%[[C5]], %[[C1_5]]] : memref<7x5xi32> to memref<?x?xi32, strided<[?, ?], offset: ?>>
# |           ^
# | <stdin>:35:34: note: scanning from here
# |  %c0_6 = arith.constant 0 : index
# |                                  ^
# | <stdin>:35:34: note: with "CONVERT" equal to "%8"
# |  %c0_6 = arith.constant 0 : index
# |                                  ^
# | <stdin>:35:34: note: with "C0_6" equal to "c0_6"
# |  %c0_6 = arith.constant 0 : index
# |                                  ^
# | <stdin>:35:34: note: with "C7" equal to "c7"
# |  %c0_6 = arith.constant 0 : index
# |                                  ^
# | <stdin>:35:34: note: with "C5" equal to "c5"
# |  %c0_6 = arith.constant 0 : index
# |                                  ^
# | <stdin>:35:34: note: with "C5" equal to "c5"
# |  %c0_6 = arith.constant 0 : index
# |                                  ^
# | <stdin>:35:34: note: with "C1_5" equal to "c1_5"
# |  %c0_6 = arith.constant 0 : index
# |                                  ^
# | <stdin>:36:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %8 to offset: [%c0_6], sizes: [%c7, %c5], strides: [%c5, %c1_5] : memref<7x5xi32> to memref<?x?xi32, strided<[?, ?]>>
# |              ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice.mlir:152:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET3D:%.*]] = memref.reinterpret_cast [[CONVERT2]] to offset: [%[[C0_5]]], sizes: [%[[C7]], %[[C7]], %[[C5]]], strides: [%[[STRIDE0]], %[[C5]], %[[C1_4]]] : memref<7x7x5xi32> to memref<?x?x?xi32, strided<[?, ?, ?], offset: ?>>
# |           ^
# | <stdin>:83:34: note: scanning from here
# |  %c0_5 = arith.constant 0 : index
# |                                  ^
# | <stdin>:83:34: note: with "CONVERT2" equal to "%10"
# |  %c0_5 = arith.constant 0 : index
# |                                  ^
# | <stdin>:83:34: note: with "C0_5" equal to "c0_5"
# |  %c0_5 = arith.constant 0 : index
# |                                  ^
# | <stdin>:83:34: note: with "C7" equal to "c7"
# |  %c0_5 = arith.constant 0 : index
# |                                  ^
# | <stdin>:83:34: note: with "C7" equal to "c7"
# |  %c0_5 = arith.constant 0 : index
# |                                  ^
# | <stdin>:83:34: note: with "C5" equal to "c5"
# |  %c0_5 = arith.constant 0 : index
# |                                  ^
# | <stdin>:83:34: note: with "STRIDE0" equal to "23"
# |  %c0_5 = arith.constant 0 : index
# |                                  ^
# | <stdin>:83:34: note: with "C5" equal to "c5"
# |  %c0_5 = arith.constant 0 : index
# |                                  ^
# | <stdin>:83:34: note: with "C1_4" equal to "c1_4"
# |  %c0_5 = arith.constant 0 : index
# |                                  ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice.mlir:205:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET2D:%.*]] = memref.reinterpret_cast [[CONVERT]] to offset: [%[[C0_4]]], sizes: [%[[C3]], %[[C3]]], strides: [%[[C3]], %[[C1_3]]] : memref<3x3xi32> to memref<?x?xi32, strided<[?, ?], offset: ?>>
# |           ^
# | <stdin>:115:34: note: scanning from here
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:115:34: note: with "CONVERT" equal to "%8"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:115:34: note: with "C0_4" equal to "c0_4"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:115:34: note: with "C3" equal to "c3"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:115:34: note: with "C3" equal to "c3"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:115:34: note: with "C3" equal to "c3"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:115:34: note: with "C1_3" equal to "c1_3"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:116:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %8 to offset: [%c0_4], sizes: [%c3, %c3], strides: [%c3, %c1_3] : memref<3x3xi32> to memref<?x?xi32, strided<[?, ?]>>
# |              ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice.mlir:256:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET:%.*]] = memref.reinterpret_cast [[CONVERT]] to offset: [%[[C0_4]]], sizes: [%[[C5]], %[[C100]]], strides: [%[[C100]], %[[C1_3]]] : memref<5x100xf32> to memref<?x?xf32, strided<[?, ?], offset: ?>>
# |           ^
# | <stdin>:150:34: note: scanning from here
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:150:34: note: with "CONVERT" equal to "%10"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:150:34: note: with "C0_4" equal to "c0_4"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:150:34: note: with "C5" equal to "c5"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:150:34: note: with "C100" equal to "c100"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:150:34: note: with "C100" equal to "c100"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:150:34: note: with "C1_3" equal to "c1_3"
# |  %c0_4 = arith.constant 0 : index
# |                                  ^
# | <stdin>:151:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %10 to offset: [%c0_4], sizes: [%c5, %c100], strides: [%c100, %c1_3] : memref<5x100xf32> to memref<?x?xf32, strided<[?, ?]>>
# |              ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice.mlir:310:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET:%.*]] = memref.reinterpret_cast [[CONVERT]] to offset: [%[[C0_3]]], sizes: [[[DIMS]]#1], strides: [[[DIV]]] : memref<7xf32> to memref<?xf32, strided<[?], offset: ?>>
# |           ^
# | <stdin>:183:34: note: scanning from here
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:183:34: note: with "CONVERT" equal to "%9"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:183:34: note: with "C0_3" equal to "c0_3"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:183:34: note: with "DIMS" equal to "%16"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:183:34: note: with "DIV" equal to "%17"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:184:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %9 to offset: [%c0_3], sizes: [%16#1], strides: [%17] : memref<7xf32> to memref<?xf32, strided<[?]>>
# |              ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\slice.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             30:  %13 = arith.subi %arg2, %c1_4 : index 
# |             31:  %14 = arith.muli %13, %c2 : index 
# |             32:  %15 = arith.subi %c2, %c1_2 : index 
# |             33:  %16 = arith.addi %14, %15 : index 
# |             34:  %c1_5 = arith.constant 1 : index 
# |             35:  %c0_6 = arith.constant 0 : index 
# | check:60'0                                       X error: no match found
# | check:60'1                                         with "CONVERT" equal to "%8"
# | check:60'2                                         with "C0_6" equal to "c0_6"
# | check:60'3                                         with "C7" equal to "c7"
# | check:60'4                                         with "C5" equal to "c5"
# | check:60'5                                         with "C5" equal to "c5"
# | check:60'6                                         with "C1_5" equal to "c1_5"
# |             36:  %reinterpret_cast = memref.reinterpret_cast %8 to offset: [%c0_6], sizes: [%c7, %c5], strides: [%c5, %c1_5] : memref<7x5xi32> to memref<?x?xi32, strided<[?, ?]>> 
# | check:60'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:60'7                   ?                                                                                                                                                      possible intended match
# |             37:  %17 = memref.load %reinterpret_cast[%16, %12] : memref<?x?xi32, strided<[?, ?]>> 
# | check:60'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             38:  } 
# | check:60'0      ~~~
# |             39:  } 
# | check:60'0      ~~~
# |             40:  return 
# | check:60'0      ~~~~~~~~
# |             41:  } 
# | check:60'0      ~~~
# |              .
# |              .
# |              .
# |             78:  %20 = arith.muli %19, %c4 : index 
# |             79:  %21 = arith.subi %c3, %c1_0 : index 
# |             80:  %22 = arith.addi %20, %21 : index 
# |             81:  %c1_4 = arith.constant 1 : index 
# |             82:  %23 = arith.muli %c7, %c5 : index 
# |             83:  %c0_5 = arith.constant 0 : index 
# | check:152'0                                      X error: no match found
# | check:152'1                                        with "CONVERT2" equal to "%10"
# | check:152'2                                        with "C0_5" equal to "c0_5"
# | check:152'3                                        with "C7" equal to "c7"
# | check:152'4                                        with "C7" equal to "c7"
# | check:152'5                                        with "C5" equal to "c5"
# | check:152'6                                        with "STRIDE0" equal to "23"
# | check:152'7                                        with "C5" equal to "c5"
# | check:152'8                                        with "C1_4" equal to "c1_4"
# |             84:  %reinterpret_cast = memref.reinterpret_cast %10 to offset: [%c0_5], sizes: [%c7, %c7, %c5], strides: [%23, %c5, %c1_4] : memref<7x7x5xi32> to memref<?x?x?xi32, strided<[?, ?, ?]>> 
# | check:152'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             85:  %24 = memref.load %reinterpret_cast[%22, %18, %14] : memref<?x?x?xi32, strided<[?, ?, ?]>> 
# | check:152'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             86:  } 
# | check:152'0     ~~~
# |             87:  } 
# | check:152'0     ~~~
# |             88:  } 
# | check:152'0     ~~~
# |              .
# |              .
# |              .
# |            110:  %10 = arith.subi %arg1, %c1_2 : index 
# |            111:  %11 = arith.muli %10, %c1 : index 
# |            112:  %12 = arith.subi %c1, %c1_1 : index 
# |            113:  %13 = arith.addi %11, %12 : index 
# |            114:  %c1_3 = arith.constant 1 : index 
# |            115:  %c0_4 = arith.constant 0 : index 
# | check:205'0                                      X error: no match found
# | check:205'1                                        with "CONVERT" equal to "%8"
# | check:205'2                                        with "C0_4" equal to "c0_4"
# | check:205'3                                        with "C3" equal to "c3"
# | check:205'4                                        with "C3" equal to "c3"
# | check:205'5                                        with "C3" equal to "c3"
# | check:205'6                                        with "C1_3" equal to "c1_3"
# |            116:  %reinterpret_cast = memref.reinterpret_cast %8 to offset: [%c0_4], sizes: [%c3, %c3], strides: [%c3, %c1_3] : memref<3x3xi32> to memref<?x?xi32, strided<[?, ?]>> 
# | check:205'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:205'7                  ?                                                                                                                                                      possible intended match
# |            117:  %14 = memref.load %reinterpret_cast[%13, %9] : memref<?x?xi32, strided<[?, ?]>> 
# | check:205'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            118:  } 
# | check:205'0     ~~~
# |            119:  return 
# | check:205'0     ~~~~~~~~
# |            120:  } 
# | check:205'0     ~~~
# |            121:  func.func @extract_column(%arg0: !fir.ref<!fir.array<100x5xf32>> {fir.bindc_name = "tmp", llvm.nocapture}) attributes {fir.internal_name = "_QPextract_column"} { 
# | check:205'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            145:  %12 = arith.subi %arg1, %c1_2 : index 
# |            146:  %13 = arith.muli %12, %c11 : index 
# |            147:  %14 = arith.subi %c1, %c1_1 : index 
# |            148:  %15 = arith.addi %13, %14 : index 
# |            149:  %c1_3 = arith.constant 1 : index 
# |            150:  %c0_4 = arith.constant 0 : index 
# | check:256'0                                      X error: no match found
# | check:256'1                                        with "CONVERT" equal to "%10"
# | check:256'2                                        with "C0_4" equal to "c0_4"
# | check:256'3                                        with "C5" equal to "c5"
# | check:256'4                                        with "C100" equal to "c100"
# | check:256'5                                        with "C100" equal to "c100"
# | check:256'6                                        with "C1_3" equal to "c1_3"
# |            151:  %reinterpret_cast = memref.reinterpret_cast %10 to offset: [%c0_4], sizes: [%c5, %c100], strides: [%c100, %c1_3] : memref<5x100xf32> to memref<?x?xf32, strided<[?, ?]>> 
# | check:256'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:256'7                  ?                                                                                                                                                             possible intended match
# |            152:  memref.store %cst, %reinterpret_cast[%11, %15] : memref<?x?xf32, strided<[?, ?]>> 
# | check:256'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            153:  } 
# | check:256'0     ~~~
# |            154:  return 
# | check:256'0     ~~~~~~~~
# |            155:  } 
# | check:256'0     ~~~
# |            156:  func.func @noslice() { 
# | check:256'0     ~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            178:  %14 = arith.addi %12, %13 : index 
# |            179:  %15 = fir.box_elesize %5 : (!fir.box<!fir.array<7xf32>>) -> index 
# |            180:  %c0_2 = arith.constant 0 : index 
# |            181:  %16:3 = fir.box_dims %5, %c0_2 : (!fir.box<!fir.array<7xf32>>, index) -> (index, index, index) 
# |            182:  %17 = arith.divsi %16#2, %15 : index 
# |            183:  %c0_3 = arith.constant 0 : index 
# | check:310'0                                      X error: no match found
# | check:310'1                                        with "CONVERT" equal to "%9"
# | check:310'2                                        with "C0_3" equal to "c0_3"
# | check:310'3                                        with "DIMS" equal to "%16"
# | check:310'4                                        with "DIV" equal to "%17"
# |            184:  %reinterpret_cast = memref.reinterpret_cast %9 to offset: [%c0_3], sizes: [%16#1], strides: [%17] : memref<7xf32> to memref<?xf32, strided<[?]>> 
# | check:310'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:310'5                  ?                                                                                                                                     possible intended match
# |            185:  %18 = memref.load %reinterpret_cast[%14] : memref<?xf32, strided<[?]>> 
# | check:310'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            186:  } 
# | check:310'0     ~~~
# |            187:  return 
# | check:310'0     ~~~~~~~~
# |            188:  } 
# | check:310'0     ~~~
# |            189:  func.func @array_coor_slice() attributes {fir.bindc_name = "tf4a", noinline} { 
# | check:310'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Flang.Transforms/FIRToMemRef/store-dynamic-shape.mlir</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
fir-opt C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\store-dynamic-shape.mlir --fir-to-memref --allow-unregistered-dialect | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\store-dynamic-shape.mlir
# executed command: fir-opt 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\store-dynamic-shape.mlir' --fir-to-memref --allow-unregistered-dialect
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\store-dynamic-shape.mlir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\store-dynamic-shape.mlir:25:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET:%.+]] = memref.reinterpret_cast [[CONVERT]] to offset: [[[CONST0_0]]], sizes: [[[DIMS]]#1], strides: [[[DIV]]] : memref<?xf32> to memref<?xf32, strided<[?], offset: ?>>
# |           ^
# | <stdin>:20:34: note: scanning from here
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:20:34: note: with "CONVERT" equal to "%4"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:20:34: note: with "CONST0_0" equal to "%c0_1"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:20:34: note: with "DIMS" equal to "%10"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:20:34: note: with "DIV" equal to "%11"
# |  %c0_1 = arith.constant 0 : index
# |                                  ^
# | <stdin>:21:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_1], sizes: [%10#1], strides: [%11] : memref<?xf32> to memref<?xf32, strided<[?]>>
# |              ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\store-dynamic-shape.mlir:67:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET:%.+]] = memref.reinterpret_cast [[CONVERT]] to offset: [[[CONST0_2]]], sizes: [[[DIMS1]]#1, [[DIMS0]]#1], strides: [[[DIV1]], [[DIV0]]] : memref<?x?xf32> to memref<?x?xf32, strided<[?, ?], offset: ?>>
# |           ^
# | <stdin>:50:34: note: scanning from here
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:50:34: note: with "CONVERT" equal to "%4"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:50:34: note: with "CONST0_2" equal to "%c0_2"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:50:34: note: with "DIMS1" equal to "%14"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:50:34: note: with "DIMS0" equal to "%16"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:50:34: note: with "DIV1" equal to "%15"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:50:34: note: with "DIV0" equal to "%17"
# |  %c0_2 = arith.constant 0 : index
# |                                  ^
# | <stdin>:51:14: note: possible intended match here
# |  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_2], sizes: [%14#1, %16#1], strides: [%15, %17] : memref<?x?xf32> to memref<?x?xf32, strided<[?, ?]>>
# |              ^
# | C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\store-dynamic-shape.mlir:117:11: error: CHECK: expected string not found in input
# | // CHECK: [[REINTERPRET:%.+]] = memref.reinterpret_cast [[CONVERT]] to offset: [[[CONST0_2]]], sizes: [[[DIMS2]]#1, [[DIMS1]]#1, [[DIMS0]]#1], strides: [[[DIV2]], [[DIV1]], [[DIV0]]] : memref<?x?x?xf32> to memref<?x?x?xf32, strided<[?, ?, ?], offset: ?>>
# |           ^
# | <stdin>:88:34: note: scanning from here
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:88:34: note: with "CONVERT" equal to "%4"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:88:34: note: with "CONST0_2" equal to "%c0_3"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:88:34: note: with "DIMS2" equal to "%18"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:88:34: note: with "DIMS1" equal to "%20"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:88:34: note: with "DIMS0" equal to "%22"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:88:34: note: with "DIV2" equal to "%19"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:88:34: note: with "DIV1" equal to "%21"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | <stdin>:88:34: note: with "DIV0" equal to "%23"
# |  %c0_3 = arith.constant 0 : index
# |                                  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\flang\test\Transforms\FIRToMemRef\store-dynamic-shape.mlir
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             15:  %8 = arith.addi %6, %7 : index 
# |             16:  %9 = fir.box_elesize %2 : (!fir.box<!fir.array<?xf32>>) -> index 
# |             17:  %c0_0 = arith.constant 0 : index 
# |             18:  %10:3 = fir.box_dims %2, %c0_0 : (!fir.box<!fir.array<?xf32>>, index) -> (index, index, index) 
# |             19:  %11 = arith.divsi %10#2, %9 : index 
# |             20:  %c0_1 = arith.constant 0 : index 
# | check:25'0                                       X error: no match found
# | check:25'1                                         with "CONVERT" equal to "%4"
# | check:25'2                                         with "CONST0_0" equal to "%c0_1"
# | check:25'3                                         with "DIMS" equal to "%10"
# | check:25'4                                         with "DIV" equal to "%11"
# |             21:  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_1], sizes: [%10#1], strides: [%11] : memref<?xf32> to memref<?xf32, strided<[?]>> 
# | check:25'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:25'5                   ?                                                                                                                                     possible intended match
# |             22:  memref.store %cst, %reinterpret_cast[%8] : memref<?xf32, strided<[?]>> 
# | check:25'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             23:  return 
# | check:25'0      ~~~~~~~~
# |             24:  } 
# | check:25'0      ~~~
# |             25:  func.func @store_dynamic_2d(%arg0: !fir.box<!fir.array<?x?xf32>> {fir.bindc_name = "x"}) { 
# | check:25'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             26:  %c2 = arith.constant 2 : index 
# |              .
# |              .
# |              .
# |             45:  %14:3 = fir.box_dims %2, %c1_0 : (!fir.box<!fir.array<?x?xf32>>, index) -> (index, index, index) 
# |             46:  %15 = arith.divsi %14#2, %13 : index 
# |             47:  %c0_1 = arith.constant 0 : index 
# |             48:  %16:3 = fir.box_dims %2, %c0_1 : (!fir.box<!fir.array<?x?xf32>>, index) -> (index, index, index) 
# |             49:  %17 = arith.divsi %16#2, %13 : index 
# |             50:  %c0_2 = arith.constant 0 : index 
# | check:67'0                                       X error: no match found
# | check:67'1                                         with "CONVERT" equal to "%4"
# | check:67'2                                         with "CONST0_2" equal to "%c0_2"
# | check:67'3                                         with "DIMS1" equal to "%14"
# | check:67'4                                         with "DIMS0" equal to "%16"
# | check:67'5                                         with "DIV1" equal to "%15"
# | check:67'6                                         with "DIV0" equal to "%17"
# |             51:  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_2], sizes: [%14#1, %16#1], strides: [%15, %17] : memref<?x?xf32> to memref<?x?xf32, strided<[?, ?]>> 
# | check:67'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:67'7                   ?                                                                                                                                                        possible intended match
# |             52:  memref.store %cst, %reinterpret_cast[%12, %8] : memref<?x?xf32, strided<[?, ?]>> 
# | check:67'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             53:  return 
# | check:67'0      ~~~~~~~~
# |             54:  } 
# | check:67'0      ~~~
# |             55:  func.func @store_dynamic_3d(%arg0: !fir.box<!fir.array<?x?x?xf32>> {fir.bindc_name = "x"}) { 
# | check:67'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             56:  %c3 = arith.constant 3 : index 
# |              .
# |              .
# |              .
# |             83:  %20:3 = fir.box_dims %2, %c1_1 : (!fir.box<!fir.array<?x?x?xf32>>, index) -> (index, index, index) 
# |             84:  %21 = arith.divsi %20#2, %17 : index 
# |             85:  %c0_2 = arith.constant 0 : index 
# |             86:  %22:3 = fir.box_dims %2, %c0_2 : (!fir.box<!fir.array<?x?x?xf32>>, index) -> (index, index, index) 
# |             87:  %23 = arith.divsi %22#2, %17 : index 
# |             88:  %c0_3 = arith.constant 0 : index 
# | check:117'0                                      X error: no match found
# | check:117'1                                        with "CONVERT" equal to "%4"
# | check:117'2                                        with "CONST0_2" equal to "%c0_3"
# | check:117'3                                        with "DIMS2" equal to "%18"
# | check:117'4                                        with "DIMS1" equal to "%20"
# | check:117'5                                        with "DIMS0" equal to "%22"
# | check:117'6                                        with "DIV2" equal to "%19"
# | check:117'7                                        with "DIV1" equal to "%21"
# | check:117'8                                        with "DIV0" equal to "%23"
# |             89:  %reinterpret_cast = memref.reinterpret_cast %4 to offset: [%c0_3], sizes: [%18#1, %20#1, %22#1], strides: [%19, %21, %23] : memref<?x?x?xf32> to memref<?x?x?xf32, strided<[?, ?, ?]>> 
# | check:117'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             90:  memref.store %cst, %reinterpret_cast[%16, %12, %8] : memref<?x?x?xf32, strided<[?, ?, ?]>> 
# | check:117'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             91:  return 
# | check:117'0     ~~~~~~~~
# |             92:  } 
# | check:117'0     ~~~
# |             93: } 
# | check:117'0     ~~
# |             94:  
# | check:117'0     ~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/192644


More information about the flang-commits mailing list