[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