From b5982acd7d1449994e8328559f5fb003d56ac679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20M=C3=BCller?= Date: Mon, 8 Feb 2021 02:17:08 +0100 Subject: [PATCH] Added all domain split unit tests but one --- .../Stencil/domain-split-canonicalize.mlir | 59 ++++++++ test/Dialect/Stencil/domain-split.mlir | 137 ++++++++---------- 2 files changed, 116 insertions(+), 80 deletions(-) create mode 100644 test/Dialect/Stencil/domain-split-canonicalize.mlir diff --git a/test/Dialect/Stencil/domain-split-canonicalize.mlir b/test/Dialect/Stencil/domain-split-canonicalize.mlir new file mode 100644 index 0000000..3658df6 --- /dev/null +++ b/test/Dialect/Stencil/domain-split-canonicalize.mlir @@ -0,0 +1,59 @@ +// RUN: oec-opt %s --stencil-domain-split --canonicalize | oec-opt | FileCheck %s + +// CHECK-LABEL: func @split_apply_multiple_results +func @split_apply_multiple_results(%arg0: !stencil.field, %arg1: !stencil.field) attributes {stencil.program} { +%0 = stencil.cast %arg0([-4, -4, -4] : [68, 68, 68]) : (!stencil.field) -> !stencil.field<72x72x72xf64> +%1 = stencil.cast %arg1([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> +// CHECK: [[VAL2:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: %cst = constant 1.000000e+00 : f64 +// CHECK: [[VAL3:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: %cst = constant 2.000000e+00 : f64 +%2:2 = stencil.apply -> (!stencil.temp, !stencil.temp) { + %one = constant 1.000000e+00 : f64 + %two = constant 2.000000e+00 : f64 + %3 = stencil.store_result %one : (f64) -> !stencil.result + %4 = stencil.store_result %two : (f64) -> !stencil.result + stencil.return %3, %4 : !stencil.result, !stencil.result +} +// CHECK: stencil.store [[VAL2]] to %0([0, 0, 0] : [64, 64, 64]) : !stencil.temp to !stencil.field<72x72x72xf64> +stencil.store %2#0 to %0([0, 0, 0] : [64, 64, 64]) : !stencil.temp to !stencil.field<72x72x72xf64> +// CHECK: stencil.store [[VAL3]] to %1([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> +stencil.store %2#1 to %1([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> +return +} + + +// ----- + +// CHECK-LABEL: func @split_rhombus_multiple_results +func @split_rhombus_multiple_results(%arg0: !stencil.field, %arg1: !stencil.field, %arg100: !stencil.field, %arg101: !stencil.field) attributes {stencil.program} { +%0 = stencil.cast %arg0([-4, -4, -4] : [68, 68, 68]) : (!stencil.field) -> !stencil.field<72x72x72xf64> +%1 = stencil.cast %arg1([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> +%100 = stencil.cast %arg100([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> +%101 = stencil.cast %arg101([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> +%2:3 = stencil.apply -> (!stencil.temp, !stencil.temp, !stencil.temp) { + %cst = constant 1.000000e+00 : f64 + %6 = stencil.store_result %cst : (f64) -> !stencil.result + stencil.return %6, %6, %6 : !stencil.result, !stencil.result, !stencil.result +} +%3:3 = stencil.apply(%arg2 = %2#0 : !stencil.temp, %arg3 = %2#1 : !stencil.temp, %arg4 = %2#2 : !stencil.temp) -> (!stencil.temp, !stencil.temp, !stencil.temp) { + %cst = constant 2.000000e+00 : f64 + %6 = stencil.store_result %cst : (f64) -> !stencil.result + stencil.return %6, %6, %6 : !stencil.result, !stencil.result, !stencil.result +} +%4:3 = stencil.apply(%arg2 = %2#0 : !stencil.temp, %arg3 = %2#1 : !stencil.temp, %arg4 = %2#2 : !stencil.temp) -> (!stencil.temp, !stencil.temp, !stencil.temp) { + %cst = constant 3.000000e+00 : f64 + %6 = stencil.store_result %cst : (f64) -> !stencil.result + stencil.return %6, %6, %6 : !stencil.result, !stencil.result, !stencil.result +} +%5:3 = stencil.apply(%arg2 = %3#0 : !stencil.temp, %arg3 = %3#1 : !stencil.temp, %arg4 = %3#2 : !stencil.temp, %arg5 = %4#0 : !stencil.temp, %arg6 = %4#1 : !stencil.temp, %arg7 = %4#2 : !stencil.temp) -> (!stencil.temp, !stencil.temp, !stencil.temp) { + %cst = constant 4.000000e+00 : f64 + %6 = stencil.store_result %cst : (f64) -> !stencil.result + stencil.return %6, %6, %6 : !stencil.result, !stencil.result, !stencil.result +} +stencil.store %5#0 to %0([0, 0, 0] : [64, 64, 64]) : !stencil.temp to !stencil.field<72x72x72xf64> +stencil.store %5#0 to %1([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> +stencil.store %5#1 to %100([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> +stencil.store %5#2 to %101([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> +return +} diff --git a/test/Dialect/Stencil/domain-split.mlir b/test/Dialect/Stencil/domain-split.mlir index 69731e2..f9d4939 100644 --- a/test/Dialect/Stencil/domain-split.mlir +++ b/test/Dialect/Stencil/domain-split.mlir @@ -20,17 +20,20 @@ return // ----- -// CHECK-LABEL: func @split_apply_multiple_results -func @split_apply_multiple_results(%arg0: !stencil.field, %arg1: !stencil.field) attributes {stencil.program} { -%0 = stencil.cast %arg0([-4, -4, -4] : [68, 68, 68]) : (!stencil.field) -> !stencil.field<72x72x72xf64> -%1 = stencil.cast %arg1([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> -%2:2 = stencil.apply -> (!stencil.temp, !stencil.temp) { +// CHECK-LABEL: func @split_combine +func @split_combine(%arg0: !stencil.field) attributes {stencil.program} { +%0 = stencil.cast %arg0([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> +// CHECK: [[VAL1:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: [[VAL2:%.*]] = stencil.apply -> !stencil.temp { +%1 = stencil.apply -> !stencil.temp { %cst = constant 1.000000e+00 : f64 - %3 = stencil.store_result %cst : (f64) -> !stencil.result - stencil.return %3, %3 : !stencil.result, !stencil.result + %4 = stencil.store_result %cst : (f64) -> !stencil.result + stencil.return %4 : !stencil.result } -stencil.store %2#0 to %0([0, 0, 0] : [64, 64, 64]) : !stencil.temp to !stencil.field<72x72x72xf64> -stencil.store %2#1 to %1([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> +// CHECK: [[VAL3:%.*]] = stencil.combine 2 at 11 lower = ([[VAL2]] : !stencil.temp) upper = ([[VAL1]] : !stencil.temp) : !stencil.temp +%3 = stencil.combine 2 at 11 lower = (%1 : !stencil.temp) upper = (%1 : !stencil.temp): !stencil.temp +// CHECK: stencil.store [[VAL3]] to %0([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> +stencil.store %3 to %0([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> return } @@ -39,91 +42,82 @@ return // CHECK-LABEL: func @split_combine_buffer_and_load func @split_combine_buffer_and_load(%arg0: !stencil.field, %arg1: !stencil.field) attributes {stencil.program} { %0 = stencil.cast %arg0([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> +// CHECK: [[VAL1:%.*]] = stencil.cast %arg1([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> %100 = stencil.cast %arg1([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> +// CHECK-NEXT: [[VAL2:%.*]] = stencil.load [[VAL1]] : (!stencil.field<136x136x136xf64>) -> !stencil.temp +// CHECK-NEXT: [[VAL3:%.*]] = stencil.load [[VAL1]] : (!stencil.field<136x136x136xf64>) -> !stencil.temp %101 = stencil.load %100 : (!stencil.field<136x136x136xf64>) -> !stencil.temp +// CHECK-NEXT: [[VAL4:%.*]] = stencil.apply (%arg2 = [[VAL3]] : !stencil.temp) -> !stencil.temp { +// CHECK: [[VAL5:%.*]] = stencil.apply (%arg2 = [[VAL2]] : !stencil.temp) -> !stencil.temp { %1 = stencil.apply(%arg2 = %101 : !stencil.temp) -> !stencil.temp { %cst = constant 1.000000e+00 : f64 %5 = stencil.store_result %cst : (f64) -> !stencil.result stencil.return %5 : !stencil.result } +// CHECK: [[VAL6:%.*]] = stencil.buffer [[VAL5]] : (!stencil.temp) -> !stencil.temp +// CHECK-NEXT: [[VAL7:%.*]] = stencil.buffer [[VAL4]] : (!stencil.temp) -> !stencil.temp %2 = stencil.buffer %1 : (!stencil.temp) -> !stencil.temp +// CHECK-NEXT: [[VAL8:%.*]] = stencil.apply (%arg2 = [[VAL7]] : !stencil.temp) -> !stencil.temp { +// CHECK: [[VAL9:%.*]] = stencil.apply (%arg2 = [[VAL6]] : !stencil.temp) -> !stencil.temp { %3 = stencil.apply(%arg2 = %2 : !stencil.temp) -> !stencil.temp { %cst = constant 2.000000e+00 : f64 %4 = stencil.store_result %cst : (f64) -> !stencil.result stencil.return %4 : !stencil.result } +// CHECK: [[VAL10:%.*]] = stencil.combine 2 at 11 lower = ([[VAL9]] : !stencil.temp) upper = ([[VAL8]] : !stencil.temp) : !stencil.temp %4 = stencil.combine 2 at 11 lower = (%3 : !stencil.temp) upper = (%3 : !stencil.temp): !stencil.temp +// CHECK-NEXT: stencil.store [[VAL10]] to %0([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> stencil.store %4 to %0([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> return } // ----- -// CHECK-LABEL: func @split_combine -func @split_combine(%arg0: !stencil.field) attributes {stencil.program} { -%0 = stencil.cast %arg0([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> -%1 = stencil.apply -> !stencil.temp { - %cst = constant 1.000000e+00 : f64 - %4 = stencil.store_result %cst : (f64) -> !stencil.result - stencil.return %4 : !stencil.result -} -%3 = stencil.combine 2 at 11 lower = (%1 : !stencil.temp) upper = (%1 : !stencil.temp): !stencil.temp -stencil.store %3 to %0([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> -return -} - -// ----- - // CHECK-LABEL: func @split_combine_on_op func @split_combine_on_op(%arg0: !stencil.field, %arg1: !stencil.field) attributes {stencil.program} { %0 = stencil.cast %arg0([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> %1 = stencil.cast %arg1([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> +// CHECK: [[VAL2:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: [[VAL3:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: [[VAL4:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: [[VAL5:%.*]] = stencil.apply -> !stencil.temp { %2 = stencil.apply -> !stencil.temp { %cst = constant 1.000000e+00 : f64 %5 = stencil.store_result %cst : (f64) -> !stencil.result stencil.return %5 : !stencil.result } +// CHECK: [[VAL6:%.*]] = stencil.combine 2 at 11 lower = ([[VAL4]] : !stencil.temp) upper = ([[VAL3]] : !stencil.temp) : !stencil.temp %3 = stencil.combine 2 at 11 lower = (%2 : !stencil.temp) upper = (%2 : !stencil.temp): !stencil.temp +// CHECK-NEXT: [[VAL7:%.*]] = stencil.combine 2 at 11 lower = ([[VAL5]] : !stencil.temp) upper = ([[VAL2]] : !stencil.temp) : !stencil.temp %4 = stencil.combine 2 at 11 lower = (%2 : !stencil.temp) upper = (%2 : !stencil.temp): !stencil.temp +// CHECK-NEXT: stencil.store [[VAL6]] to %0([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> stencil.store %3 to %0([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> +// CHECK-NEXT: stencil.store [[VAL7]] to %1([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> stencil.store %4 to %1([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> return } // ----- -// CHECK-LABEL: func @split_multiple_applies -func @split_multiple_applies(%arg0: !stencil.field, %arg1: !stencil.field) attributes {stencil.program} { -%0 = stencil.cast %arg0([-4, -4, -4] : [68, 68, 68]) : (!stencil.field) -> !stencil.field<72x72x72xf64> -%1 = stencil.cast %arg1([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> -%2 = stencil.apply -> !stencil.temp { - %cst = constant 1.000000e+00 : f64 - %4 = stencil.store_result %cst : (f64) -> !stencil.result - stencil.return %4 : !stencil.result -} -%3 = stencil.apply(%arg2 = %2 : !stencil.temp) -> !stencil.temp { - %cst = constant 2.000000e+00 : f64 - %4 = stencil.store_result %cst : (f64) -> !stencil.result - stencil.return %4 : !stencil.result -} -stencil.store %3 to %0([0, 0, 0] : [64, 64, 64]) : !stencil.temp to !stencil.field<72x72x72xf64> -stencil.store %3 to %1([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> -return -} - -// ----- - // CHECK-LABEL: func @split_multiple_combines func @split_multiple_combines(%arg0: !stencil.field) attributes {stencil.program} { %0 = stencil.cast %arg0([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> +// CHECK: [[VAL1:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: [[VAL2:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: [[VAL3:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: [[VAL4:%.*]] = stencil.apply -> !stencil.temp { %2 = stencil.apply -> !stencil.temp { %cst = constant 1.000000e+00 : f64 %5 = stencil.store_result %cst : (f64) -> !stencil.result stencil.return %5 : !stencil.result } +// CHECK: [[VAL5:%.*]] = stencil.combine 2 at 11 lower = ([[VAL4]] : !stencil.temp) upper = ([[VAL3]] : !stencil.temp) : !stencil.temp %3 = stencil.combine 2 at 11 lower = (%2 : !stencil.temp) upper = (%2 : !stencil.temp): !stencil.temp +// CHECK-NEXT: [[VAL6:%.*]] = stencil.combine 2 at 11 lower = ([[VAL2]] : !stencil.temp) upper = ([[VAL1]] : !stencil.temp) : !stencil.temp %4 = stencil.combine 2 at 11 lower = (%2 : !stencil.temp) upper = (%2 : !stencil.temp): !stencil.temp +// CHECK-NEXT: [[VAL7:%.*]] = stencil.combine 1 at 30 lower = ([[VAL5]] : !stencil.temp) upper = ([[VAL6]] : !stencil.temp) : !stencil.temp %5 = stencil.combine 1 at 30 lower = (%3 : !stencil.temp) upper = (%4 : !stencil.temp): !stencil.temp +// CHECK-NEXT: stencil.store [[VAL7]] to %0([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> stencil.store %5 to %0([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> return } @@ -134,62 +128,45 @@ return func @split_rhombus(%arg0: !stencil.field, %arg1: !stencil.field) attributes {stencil.program} { %0 = stencil.cast %arg0([-4, -4, -4] : [68, 68, 68]) : (!stencil.field) -> !stencil.field<72x72x72xf64> %1 = stencil.cast %arg1([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> +// CHECK: [[VAL2:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: %cst = constant 1.000000e+00 : f64 +// CHECK: [[VAL3:%.*]] = stencil.apply -> !stencil.temp { +// CHECK: %cst = constant 1.000000e+00 : f64 %2 = stencil.apply -> !stencil.temp { %cst = constant 1.000000e+00 : f64 %6 = stencil.store_result %cst : (f64) -> !stencil.result stencil.return %6 : !stencil.result } +// CHECK: [[VAL4:%.*]] = stencil.apply (%arg2 = [[VAL3]] : !stencil.temp) -> !stencil.temp { +// CHECK: %cst = constant 2.000000e+00 : f64 +// CHECK: [[VAL5:%.*]] = stencil.apply (%arg2 = [[VAL2]] : !stencil.temp) -> !stencil.temp { +// CHECK: %cst = constant 2.000000e+00 : f64 %3 = stencil.apply(%arg2 = %2 : !stencil.temp) -> !stencil.temp { %cst = constant 2.000000e+00 : f64 %6 = stencil.store_result %cst : (f64) -> !stencil.result stencil.return %6 : !stencil.result } +// CHECK: [[VAL6:%.*]] = stencil.apply (%arg2 = [[VAL3]] : !stencil.temp) -> !stencil.temp { +// CHECK: %cst = constant 3.000000e+00 : f64 +// CHECK: [[VAL7:%.*]] = stencil.apply (%arg2 = [[VAL2]] : !stencil.temp) -> !stencil.temp { +// CHECK: %cst = constant 3.000000e+00 : f64 %4 = stencil.apply(%arg2 = %2 : !stencil.temp) -> !stencil.temp { %cst = constant 3.000000e+00 : f64 %6 = stencil.store_result %cst : (f64) -> !stencil.result stencil.return %6 : !stencil.result } +// CHECK: [[VAL8:%.*]] = stencil.apply (%arg2 = [[VAL5]] : !stencil.temp, %arg3 = [[VAL7]] : !stencil.temp) -> !stencil.temp { +// CHECK: %cst = constant 4.000000e+00 : f64 +// CHECK: [[VAL9:%.*]] = stencil.apply (%arg2 = [[VAL4]] : !stencil.temp, %arg3 = [[VAL6]] : !stencil.temp) -> !stencil.temp { +// CHECK: %cst = constant 4.000000e+00 : f64 %5 = stencil.apply(%arg3 = %3 : !stencil.temp, %arg4 = %4 : !stencil.temp) -> !stencil.temp { %cst = constant 4.000000e+00 : f64 %6 = stencil.store_result %cst : (f64) -> !stencil.result stencil.return %6 : !stencil.result } +// CHECK: stencil.store [[VAL9]] to %0([0, 0, 0] : [64, 64, 64]) : !stencil.temp to !stencil.field<72x72x72xf64> stencil.store %5 to %0([0, 0, 0] : [64, 64, 64]) : !stencil.temp to !stencil.field<72x72x72xf64> +// CHECK-NEXT: stencil.store [[VAL8]] to %1([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> stencil.store %5 to %1([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> return } - -// ----- - -// CHECK-LABEL: func @split_rhombus_multiple_results -func @split_rhombus_multiple_results(%arg0: !stencil.field, %arg1: !stencil.field, %arg100: !stencil.field, %arg101: !stencil.field) attributes {stencil.program} { -%0 = stencil.cast %arg0([-4, -4, -4] : [68, 68, 68]) : (!stencil.field) -> !stencil.field<72x72x72xf64> -%1 = stencil.cast %arg1([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> -%100 = stencil.cast %arg100([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> -%101 = stencil.cast %arg101([-4, -4, -4] : [132, 132, 132]) : (!stencil.field) -> !stencil.field<136x136x136xf64> -%2:3 = stencil.apply -> (!stencil.temp, !stencil.temp, !stencil.temp) { - %cst = constant 1.000000e+00 : f64 - %6 = stencil.store_result %cst : (f64) -> !stencil.result - stencil.return %6, %6, %6 : !stencil.result, !stencil.result, !stencil.result -} -%3:3 = stencil.apply(%arg2 = %2#0 : !stencil.temp, %arg3 = %2#1 : !stencil.temp, %arg4 = %2#2 : !stencil.temp) -> (!stencil.temp, !stencil.temp, !stencil.temp) { - %cst = constant 2.000000e+00 : f64 - %6 = stencil.store_result %cst : (f64) -> !stencil.result - stencil.return %6, %6, %6 : !stencil.result, !stencil.result, !stencil.result -} -%4:3 = stencil.apply(%arg2 = %2#0 : !stencil.temp, %arg3 = %2#1 : !stencil.temp, %arg4 = %2#2 : !stencil.temp) -> (!stencil.temp, !stencil.temp, !stencil.temp) { - %cst = constant 3.000000e+00 : f64 - %6 = stencil.store_result %cst : (f64) -> !stencil.result - stencil.return %6, %6, %6 : !stencil.result, !stencil.result, !stencil.result -} -%5:3 = stencil.apply(%arg2 = %3#0 : !stencil.temp, %arg3 = %3#1 : !stencil.temp, %arg4 = %3#2 : !stencil.temp, %arg5 = %4#0 : !stencil.temp, %arg6 = %4#1 : !stencil.temp, %arg7 = %4#2 : !stencil.temp) -> (!stencil.temp, !stencil.temp, !stencil.temp) { - %cst = constant 4.000000e+00 : f64 - %6 = stencil.store_result %cst : (f64) -> !stencil.result - stencil.return %6, %6, %6 : !stencil.result, !stencil.result, !stencil.result -} -stencil.store %5#0 to %0([0, 0, 0] : [64, 64, 64]) : !stencil.temp to !stencil.field<72x72x72xf64> -stencil.store %5#0 to %1([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> -stencil.store %5#1 to %100([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> -stencil.store %5#2 to %101([0, 0, 0] : [128, 128, 128]) : !stencil.temp to !stencil.field<136x136x136xf64> -return -}