• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2020 Google LLC
2 //
3 // This source code is licensed under the BSD-style license found in the
4 // LICENSE file in the root directory of this source tree.
5 
6 #include <math.h>
7 #include <stddef.h>
8 #include <stdint.h>
9 
10 #include <xnnpack/common.h>
11 #include <xnnpack/log.h>
12 #include <xnnpack/subgraph.h>
13 
14 
15 // This function is defined inline when logging is disabled
16 #if XNN_LOG_LEVEL > 0
xnn_operator_type_to_string(enum xnn_operator_type type)17 const char* xnn_operator_type_to_string(enum xnn_operator_type type) {
18   switch (type) {
19     case xnn_operator_type_invalid:
20       return "Invalid";
21     case xnn_operator_type_abs_nc_f32:
22       return "Abs (NC, F32)";
23     case xnn_operator_type_add_nd_f16:
24       return "Add (ND, F16)";
25     case xnn_operator_type_add_nd_f32:
26       return "Add (ND, F32)";
27     case xnn_operator_type_add_nd_qs8:
28       return "Add (ND, QS8)";
29     case xnn_operator_type_add_nd_qu8:
30       return "Add (ND, QU8)";
31     case xnn_operator_type_argmax_pooling_nhwc_f32:
32       return "ArgMax Pooling (NHWC, F32)";
33     case xnn_operator_type_average_pooling_nhwc_f32:
34       return "Average Pooling (NHWC, F32)";
35     case xnn_operator_type_average_pooling_nhwc_qu8:
36       return "Average Pooling (NHWC, QU8)";
37     case xnn_operator_type_bankers_rounding_nc_f32:
38       return "Bankers Rounding (NC, F32)";
39     case xnn_operator_type_ceiling_nc_f32:
40       return "Ceiling (NC, F32)";
41     case xnn_operator_type_channel_shuffle_nc_x8:
42       return "Channel Shuffle (NC, X8)";
43     case xnn_operator_type_channel_shuffle_nc_x32:
44       return "Channel Shuffle (NC, X32)";
45     case xnn_operator_type_clamp_nc_f32:
46       return "Clamp (NC, F32)";
47     case xnn_operator_type_clamp_nc_s8:
48       return "Clamp (NC, S8)";
49     case xnn_operator_type_clamp_nc_u8:
50       return "Clamp (NC, U8)";
51     case xnn_operator_type_constant_pad_nd_x8:
52       return "Constant Pad (ND, X8)";
53     case xnn_operator_type_constant_pad_nd_x16:
54       return "Constant Pad (ND, X16)";
55     case xnn_operator_type_constant_pad_nd_x32:
56       return "Constant Pad (ND, X32)";
57     case xnn_operator_type_convert_nc_f16_f32:
58       return "Convert (NC, F16, F32)";
59     case xnn_operator_type_convert_nc_f32_f16:
60       return "Convert (NC, F32, F16)";
61     case xnn_operator_type_convert_nc_f32_qs8:
62       return "Convert (NC, F32, QS8)";
63     case xnn_operator_type_convert_nc_f32_qu8:
64       return "Convert (NC, F32, QU8)";
65     case xnn_operator_type_convert_nc_qs8_f32:
66       return "Convert (NC, QS8, F32)";
67     case xnn_operator_type_convert_nc_qu8_f32:
68       return "Convert (NC, QU8, F32)";
69     case xnn_operator_type_convolution_nhwc_f16:
70       return "Convolution (NHWC, F16)";
71     case xnn_operator_type_convolution_nhwc_f32:
72       return "Convolution (NHWC, F32)";
73     case xnn_operator_type_convolution_nhwc_qc8:
74       return "Convolution (NHWC, QC8)";
75     case xnn_operator_type_convolution_nhwc_qs8:
76       return "Convolution (NHWC, QS8)";
77     case xnn_operator_type_convolution_nhwc_qu8:
78       return "Convolution (NHWC, QU8)";
79     case xnn_operator_type_convolution_nchw_f32:
80       return "Convolution (NCHW, F32)";
81     case xnn_operator_type_copy_nc_x8:
82       return "Copy (NC, X8)";
83     case xnn_operator_type_copy_nc_x16:
84       return "Copy (NC, X16)";
85     case xnn_operator_type_copy_nc_x32:
86       return "Copy (NC, X32)";
87     case xnn_operator_type_deconvolution_nhwc_f32:
88       return "Deconvolution (NHWC, F32)";
89     case xnn_operator_type_deconvolution_nhwc_qs8:
90       return "Deconvolution (NHWC, QS8)";
91     case xnn_operator_type_deconvolution_nhwc_qu8:
92       return "Deconvolution (NHWC, QU8)";
93     case xnn_operator_type_depth_to_space_nchw2nhwc_x32:
94       return "Depth To Space (NCHW2NHWC, X32)";
95     case xnn_operator_type_depth_to_space_nhwc_x32:
96       return "Depth To Space (NHWC, X32)";
97     case xnn_operator_type_divide_nd_f32:
98       return "Divide (ND, F32)";
99     case xnn_operator_type_elu_nc_f32:
100       return "ELU (NC, F32)";
101     case xnn_operator_type_elu_nc_qs8:
102       return "ELU (NC, QS8)";
103     case xnn_operator_type_floor_nc_f32:
104       return "Floor (NC, F32)";
105     case xnn_operator_type_fully_connected_nc_f16:
106       return "Fully Connected (NC, F16)";
107     case xnn_operator_type_fully_connected_nc_f32:
108       return "Fully Connected (NC, F32)";
109     case xnn_operator_type_fully_connected_nc_qs8:
110       return "Fully Connected (NC, QS8)";
111     case xnn_operator_type_fully_connected_nc_qu8:
112       return "Fully Connected (NC, QU8)";
113     case xnn_operator_type_global_average_pooling_nwc_f16:
114       return "Global Average Pooling (NWC, F16)";
115     case xnn_operator_type_global_average_pooling_nwc_f32:
116       return "Global Average Pooling (NWC, F32)";
117     case xnn_operator_type_global_average_pooling_nwc_qs8:
118       return "Global Average Pooling (NWC, QS8)";
119     case xnn_operator_type_global_average_pooling_nwc_qu8:
120       return "Global Average Pooling (NWC, QU8)";
121     case xnn_operator_type_global_average_pooling_ncw_f32:
122       return "Global Average Pooling (NCW, F32)";
123     case xnn_operator_type_hardswish_nc_f16:
124       return "HardSwish (NC, F16)";
125     case xnn_operator_type_hardswish_nc_f32:
126       return "HardSwish (NC, F32)";
127     case xnn_operator_type_leaky_relu_nc_f32:
128       return "Leaky ReLU (NC, F32)";
129     case xnn_operator_type_leaky_relu_nc_qu8:
130       return "Leaky ReLU (NC, QU8)";
131     case xnn_operator_type_max_pooling_nhwc_f16:
132       return "Max Pooling (NHWC, F16)";
133     case xnn_operator_type_max_pooling_nhwc_f32:
134       return "Max Pooling (NHWC, F32)";
135     case xnn_operator_type_max_pooling_nhwc_s8:
136       return "Max Pooling (NHWC, S8)";
137     case xnn_operator_type_max_pooling_nhwc_u8:
138       return "Max Pooling (NHWC, U8)";
139     case xnn_operator_type_maximum_nd_f32:
140       return "Maximum (ND, F32)";
141     case xnn_operator_type_minimum_nd_f32:
142       return "Minimum (ND, F32)";
143     case xnn_operator_type_multiply_nd_f16:
144       return "Multiply (ND, F16)";
145     case xnn_operator_type_multiply_nd_f32:
146       return "Multiply (ND, F32)";
147     case xnn_operator_type_multiply_nd_qs8:
148       return "Multiply (ND, QS8)";
149     case xnn_operator_type_multiply_nd_qu8:
150       return "Multiply (ND, QU8)";
151     case xnn_operator_type_negate_nc_f32:
152       return "Negate (NC, F32)";
153     case xnn_operator_type_prelu_nc_f16:
154       return "PReLU (NC, F16)";
155     case xnn_operator_type_prelu_nc_f32:
156       return "PReLU (NC, F32)";
157     case xnn_operator_type_resize_bilinear_nhwc_f32:
158       return "Resize Bilinear (NHWC, F32)";
159     case xnn_operator_type_resize_bilinear_nhwc_s8:
160       return "Resize Bilinear (NHWC, S8)";
161     case xnn_operator_type_resize_bilinear_nhwc_u8:
162       return "Resize Bilinear (NHWC, U8)";
163     case xnn_operator_type_resize_bilinear_nchw_f32:
164       return "Resize Bilinear (NCHW, F32)";
165     case xnn_operator_type_sigmoid_nc_f32:
166       return "Sigmoid (NC, F32)";
167     case xnn_operator_type_sigmoid_nc_qs8:
168       return "Sigmoid (NC, QS8)";
169     case xnn_operator_type_sigmoid_nc_qu8:
170       return "Sigmoid (NC, QU8)";
171     case xnn_operator_type_softmax_nc_f32:
172       return "Softmax (NC, F32)";
173     case xnn_operator_type_softmax_nc_qu8:
174       return "Softmax (NC, QU8)";
175     case xnn_operator_type_square_nc_f32:
176       return "Square (NC, F32)";
177     case xnn_operator_type_square_root_nc_f32:
178       return "Square Root (NC, F32)";
179     case xnn_operator_type_squared_difference_nd_f32:
180       return "Squared Difference (NC, F32)";
181     case xnn_operator_type_subtract_nd_f32:
182       return "Subtract (ND, F32)";
183     case xnn_operator_type_subtract_nd_qs8:
184       return "Subtract (ND, QS8)";
185     case xnn_operator_type_subtract_nd_qu8:
186       return "Subtract (ND, QU8)";
187     case xnn_operator_type_tanh_nc_qs8:
188       return "Tanh (NC, QS8)";
189     case xnn_operator_type_tanh_nc_qu8:
190       return "Tanh (NC, QU8)";
191     case xnn_operator_type_truncation_nc_f32:
192       return "Truncation (NC, F32)";
193     case xnn_operator_type_unpooling_nhwc_x32:
194       return "Unpooling (NHWC, X32)";
195   }
196   XNN_UNREACHABLE;
197   return NULL;
198 }
199 #endif  // XNN_LOG_LEVEL > 0
200