|
18 | 18 | // DEFINE: )"
|
19 | 19 |
|
20 | 20 | // RUN: mlir-opt --pass-pipeline=%{pipeline} %s | FileCheck %s
|
21 |
| - |
22 | 21 | // -----
|
23 | 22 |
|
24 | 23 | // CHECK: emitc.func @main(%[[ARG0:.*]]: !emitc.array<2xf32>, %[[ARG1:.*]]: !emitc.array<2xf32>, %[[RES:.*]]: !emitc.array<2xf32>) {
|
25 | 24 | // CHECK-DAG: %[[C0:.*]] = "emitc.constant"() <{value = 0 : index}> : () -> !emitc.size_t
|
26 | 25 | // CHECK-DAG: %[[C1:.*]] = "emitc.constant"() <{value = 1 : index}> : () -> !emitc.size_t
|
27 | 26 | // CHECK-DAG: %[[C2:.*]] = "emitc.constant"() <{value = 2 : index}> : () -> !emitc.size_t
|
28 |
| -// CHECK-DAG: %[[I0:.*]] = builtin.unrealized_conversion_cast %[[C0]] : !emitc.size_t to index |
29 |
| -// CHECK-DAG: %[[I1:.*]] = builtin.unrealized_conversion_cast %[[C1]] : !emitc.size_t to index |
30 |
| -// CHECK-DAG: %[[I2:.*]] = builtin.unrealized_conversion_cast %[[C2]] : !emitc.size_t to index |
31 |
| -// CHECK-NEXT: for %[[INDEX:.*]] = %[[I0]] to %[[I2]] step %[[I1]] { |
32 |
| -// CHECK-NEXT: %[[INDEX_S:.*]] = builtin.unrealized_conversion_cast %[[INDEX]] : index to !emitc.size_t |
33 |
| -// CHECK-NEXT: %[[V0_LVALUE:.*]] = emitc.subscript %[[ARG0]][%[[INDEX_S]]] : (!emitc.array<2xf32>, !emitc.size_t) -> !emitc.lvalue<f32> |
34 |
| -// CHECK-NEXT: %[[V0:.*]] = emitc.load %[[V0_LVALUE]] : <f32> |
35 |
| -// CHECK-NEXT: %[[V1_LVALUE:.*]] = emitc.subscript %[[ARG1]][%[[INDEX_S]]] : (!emitc.array<2xf32>, !emitc.size_t) -> !emitc.lvalue<f32> |
36 |
| -// CHECK-NEXT: %[[V1:.*]] = emitc.load %[[V1_LVALUE]] : <f32> |
37 |
| -// CHECK-NEXT: %[[VADD:.*]] = emitc.add %[[V0]], %[[V1]] : (f32, f32) -> f32 |
38 |
| -// CHECK-NEXT: %[[RES_LVALUE:.*]] = emitc.subscript %[[RES]][%[[INDEX_S]]] : (!emitc.array<2xf32>, !emitc.size_t) -> !emitc.lvalue<f32> |
39 |
| -// CHECK-NEXT: emitc.assign %[[VADD]] : f32 to %[[RES_LVALUE]] : <f32> |
| 27 | +// CHECK-NEXT: for %[[INDEX:.*]] = %[[C0]] to %[[C2]] step %[[C1]] : !emitc.size_t { |
| 28 | +// CHECK-NEXT: %[[V0_LVALUE:.*]] = subscript %[[ARG0]][%[[INDEX]]] : (!emitc.array<2xf32>, !emitc.size_t) -> !emitc.lvalue<f32> |
| 29 | +// CHECK-NEXT: %[[V0:.*]] = load %[[V0_LVALUE]] : <f32> |
| 30 | +// CHECK-NEXT: %[[V1_LVALUE:.*]] = subscript %[[ARG1]][%[[INDEX]]] : (!emitc.array<2xf32>, !emitc.size_t) -> !emitc.lvalue<f32> |
| 31 | +// CHECK-NEXT: %[[V1:.*]] = load %[[V1_LVALUE]] : <f32> |
| 32 | +// CHECK-NEXT: %[[VADD:.*]] = add %[[V0]], %[[V1]] : (f32, f32) -> f32 |
| 33 | +// CHECK-NEXT: %[[RES_LVALUE:.*]] = subscript %[[RES]][%[[INDEX]]] : (!emitc.array<2xf32>, !emitc.size_t) -> !emitc.lvalue<f32> |
| 34 | +// CHECK-NEXT: assign %[[VADD]] : f32 to %[[RES_LVALUE]] : <f32> |
40 | 35 | // CHECK-NEXT: }
|
41 | 36 | // CHECK-NEXT: return
|
42 | 37 | // CHECK-NEXT: }
|
|
0 commit comments