@@ -1062,6 +1062,28 @@ module attributes { transform.target_tag = "start_here" } {
1062
1062
return %result : tensor <10 x18 x15 xf64 >
1063
1063
}
1064
1064
1065
+ func.func @convolution_depthwise (%input: tensor <1 x10 x196 x48 xf32 >, %filter: tensor <1 x4 x48 xf32 >) -> tensor <1 x10 x191 x48 xf32 > {
1066
+ %cst = arith.constant 0.0 : f32
1067
+ %empty = tensor.empty () : tensor <1 x10 x191 x48 xf32 >
1068
+ %fill = linalg.fill ins (%cst : f32 ) outs (%empty : tensor <1 x10 x191 x48 xf32 >) -> tensor <1 x10 x191 x48 xf32 >
1069
+ // expected-remark @below {{convolution}}
1070
+ // expected-remark @below {{batch dims 0}}
1071
+ // expected-remark @below {{output image dims 1 : i64, 2 : i64}}
1072
+ // expected-remark @below {{output channel dims}}
1073
+ // expected-remark @below {{filter loop dims 4 : i64, 5 : i64}}
1074
+ // expected-remark @below {{input channel dims}}
1075
+ // expected-remark @below {{depth dims 3}}
1076
+ // expected-remark @below {{strides 1 : i64, 1 : i64}}
1077
+ // expected-remark @below {{dilations 1 : i64, 1 : i64}}
1078
+ %result = linalg.depthwise_conv_2d_nhwc_hwc {
1079
+ dilations = dense <1 > : tensor <2 xi64 >,
1080
+ strides = dense <1 > : tensor <2 xi64 >}
1081
+ ins (%input , %filter : tensor <1 x10 x196 x48 xf32 >, tensor <1 x4 x48 xf32 >)
1082
+ outs (%fill : tensor <1 x10 x191 x48 xf32 >) -> tensor <1 x10 x191 x48 xf32 >
1083
+
1084
+ return %result : tensor <1 x10 x191 x48 xf32 >
1085
+ }
1086
+
1065
1087
func.func @convolution_multi_channel (%input: tensor <2 x34 x68 x16 xf32 >, %filter: tensor <8 x2 x3 x5 x16 x16 xf32 >) -> tensor <8 x32 x32 x16 xf32 > {
1066
1088
%cst = arith.constant 0.0 : f32
1067
1089
%empty = tensor.empty () : tensor <8 x32 x32 x16 xf32 >
0 commit comments