blob: 2fe468d326a07bd181e2ff7fe86853ef60c89254 [file] [log] [blame]
Marat Dukhan3b59de22020-06-03 20:15:19 -07001// 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
Marat Dukhan210e35d2020-06-04 02:45:57 -070015// This function is defined inline when logging is disabled
16#if XNN_LOG_LEVEL > 0
Marat Dukhan3b59de22020-06-03 20:15:19 -070017const char* xnn_operator_type_to_string(enum xnn_operator_type type) {
18 switch (type) {
19 case xnn_operator_type_invalid:
20 return "Invalid";
Marat Dukhan5020b962020-06-08 13:30:10 -070021 case xnn_operator_type_abs_nc_f32:
22 return "Abs (NC, F32)";
Frank Barchard01898c02020-06-23 21:49:50 -070023 case xnn_operator_type_add_nd_f16:
24 return "Add (ND, F16)";
Marat Dukhan3b59de22020-06-03 20:15:19 -070025 case xnn_operator_type_add_nd_f32:
26 return "Add (ND, F32)";
Marat Dukhan3b59de22020-06-03 20:15:19 -070027 case xnn_operator_type_argmax_pooling_nhwc_f32:
28 return "ArgMax Pooling (NHWC, F32)";
29 case xnn_operator_type_average_pooling_nhwc_f32:
30 return "Average Pooling (NHWC, F32)";
31 case xnn_operator_type_average_pooling_nhwc_q8:
32 return "Average Pooling (NHWC, Q8)";
Marat Dukhan64e52512020-06-09 13:41:16 -070033 case xnn_operator_type_bankers_rounding_nc_f32:
34 return "Bankers Rounding (NC, F32)";
35 case xnn_operator_type_ceiling_nc_f32:
36 return "Ceiling (NC, F32)";
Marat Dukhan3b59de22020-06-03 20:15:19 -070037 case xnn_operator_type_channel_shuffle_nc_x32:
38 return "Channel Shuffle (NC, X32)";
39 case xnn_operator_type_channel_shuffle_nc_x8:
40 return "Channel Shuffle (NC, X8)";
41 case xnn_operator_type_clamp_nc_f32:
42 return "Clamp (NC, F32)";
43 case xnn_operator_type_clamp_nc_u8:
44 return "Clamp (NC, U8)";
45 case xnn_operator_type_constant_pad_nd_x32:
46 return "Constant Pad (ND, X32)";
47 case xnn_operator_type_convolution_nhwc_f32:
48 return "Convolution (NHWC, F32)";
49 case xnn_operator_type_convolution_nhwc_q8:
50 return "Convolution (NHWC, Q8)";
51 case xnn_operator_type_convolution_nchw_f32:
52 return "Convolution (NCHW, F32)";
Marat Dukhan4e21b272020-06-04 18:45:01 -070053 case xnn_operator_type_copy_nc_x32:
54 return "Copy (NC, X32)";
Marat Dukhan3b59de22020-06-03 20:15:19 -070055 case xnn_operator_type_deconvolution_nhwc_f32:
56 return "Deconvolution (NHWC, F32)";
57 case xnn_operator_type_deconvolution_nhwc_q8:
58 return "Deconvolution (NHWC, Q8)";
59 case xnn_operator_type_divide_nd_f32:
60 return "Divide (ND, F32)";
Marat Dukhan64e52512020-06-09 13:41:16 -070061 case xnn_operator_type_floor_nc_f32:
62 return "Floor (NC, F32)";
Marat Dukhan3b59de22020-06-03 20:15:19 -070063 case xnn_operator_type_fully_connected_nc_f32:
64 return "Fully Connected (NC, F32)";
65 case xnn_operator_type_fully_connected_nc_q8:
66 return "Fully Connected (NC, Q8)";
Frank Barchard7e2cbb02020-06-12 01:22:13 -070067 case xnn_operator_type_global_average_pooling_nwc_f16:
68 return "Global Average Pooling (NWC, F16)";
Marat Dukhan3b59de22020-06-03 20:15:19 -070069 case xnn_operator_type_global_average_pooling_nwc_f32:
70 return "Global Average Pooling (NWC, F32)";
71 case xnn_operator_type_global_average_pooling_nwc_q8:
72 return "Global Average Pooling (NWC, Q8)";
73 case xnn_operator_type_global_average_pooling_ncw_f32:
74 return "Global Average Pooling (NCW, F32)";
75 case xnn_operator_type_hardswish_nc_f32:
76 return "HardSwish (NC, F32)";
Marat Dukhan28813332020-06-10 18:05:38 -070077 case xnn_operator_type_leaky_relu_nc_f32:
78 return "Leaky ReLU (NC, F32)";
Marat Dukhan3b59de22020-06-03 20:15:19 -070079 case xnn_operator_type_leaky_relu_nc_q8:
80 return "Leaky ReLU (NC, Q8)";
81 case xnn_operator_type_max_pooling_nhwc_f32:
82 return "Max Pooling (NHWC, F32)";
83 case xnn_operator_type_max_pooling_nhwc_u8:
84 return "Max Pooling (NHWC, U8)";
85 case xnn_operator_type_maximum_nd_f32:
86 return "Maximum (ND, F32)";
87 case xnn_operator_type_minimum_nd_f32:
88 return "Minimum (ND, F32)";
89 case xnn_operator_type_multiply_nd_f32:
90 return "Multiply (ND, F32)";
Marat Dukhan5020b962020-06-08 13:30:10 -070091 case xnn_operator_type_negate_nc_f32:
92 return "Negate (NC, F32)";
Marat Dukhan3b59de22020-06-03 20:15:19 -070093 case xnn_operator_type_prelu_nc_f32:
94 return "PReLU (NC, F32)";
95 case xnn_operator_type_resize_bilinear_nhwc_f32:
96 return "Resize Bilinear (NHWC, F32)";
97 case xnn_operator_type_sigmoid_nc_f32:
98 return "Sigmoid (NC, F32)";
99 case xnn_operator_type_sigmoid_nc_q8:
100 return "Sigmoid (NC, Q8)";
101 case xnn_operator_type_softmax_nc_f32:
102 return "Softmax (NC, F32)";
103 case xnn_operator_type_softmax_nc_q8:
104 return "Softmax (NC, Q8)";
Marat Dukhan5020b962020-06-08 13:30:10 -0700105 case xnn_operator_type_square_nc_f32:
106 return "Square (NC, F32)";
Marat Dukhanf7399262020-06-05 10:58:44 -0700107 case xnn_operator_type_squared_difference_nd_f32:
108 return "Squared Difference (NC, F32)";
Marat Dukhan3b59de22020-06-03 20:15:19 -0700109 case xnn_operator_type_subtract_nd_f32:
110 return "Subtract (ND, F32)";
Marat Dukhan64e52512020-06-09 13:41:16 -0700111 case xnn_operator_type_truncation_nc_f32:
112 return "Truncation (NC, F32)";
Marat Dukhan3b59de22020-06-03 20:15:19 -0700113 case xnn_operator_type_unpooling_nhwc_x32:
114 return "Unpooling (NHWC, X32)";
115 }
116 XNN_UNREACHABLE;
117 return NULL;
118}
Marat Dukhan210e35d2020-06-04 02:45:57 -0700119#endif // XNN_LOG_LEVEL > 0