// Copyright 2019 Google LLC // // This source code is licensed under the BSD-style license found in the // LICENSE file in the root directory of this source tree. #include #include #include // A dummy program that calls every Operators API function in XNNPACK, for size estimation. int main(int argc, char** argv) { int function_idx = 0; if (argc >= 2) { function_idx = atoi(argv[1]); } xnn_initialize(NULL /* allocator */); xnn_operator_t op = NULL; switch (function_idx) { case -1: xnn_delete_operator(op); break; case 0: xnn_run_operator(op, NULL); break; case 1: xnn_create_add_nd_f32( 0.0f, 0.0f, 0, &op); break; case 2: xnn_setup_add_nd_f32( op, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); break; case 3: xnn_create_argmax_pooling2d_nhwc_f32( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &op); break; case 4: xnn_setup_argmax_pooling2d_nhwc_f32( op, 0, 0, 0, NULL, NULL, NULL, NULL); break; case 5: xnn_create_average_pooling2d_nhwc_f32( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0, &op); break; case 6: xnn_setup_average_pooling2d_nhwc_f32( op, 0, 0, 0, NULL, NULL, NULL); break; case 7: xnn_create_clamp_nc_f32( 0, 0, 0, 0.0f, 0.0f, 0, &op); break; case 8: xnn_setup_clamp_nc_f32( op, 0, NULL, NULL, NULL); break; case 9: xnn_create_convolution2d_nhwc_f32( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0.0f, 0.0f, 0, &op); break; case 10: xnn_setup_convolution2d_nhwc_f32( op, 0, 0, 0, NULL, NULL, NULL); break; case 11: xnn_create_deconvolution2d_nhwc_f32( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0.0f, 0.0f, 0, &op); break; case 12: xnn_setup_deconvolution2d_nhwc_f32( op, 0, 0, 0, 0, 0, NULL, NULL, NULL); break; case 13: xnn_create_divide_nd_f32( 0.0f, 0.0f, 0, &op); break; case 14: xnn_setup_divide_nd_f32( op, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); break; case 15: xnn_create_fully_connected_nc_f32( 0, 0, 0, 0, NULL, NULL, 0.0f, 0.0f, 0, &op); break; case 16: xnn_setup_fully_connected_nc_f32( op, 0, NULL, NULL, NULL); break; case 17: xnn_create_global_average_pooling_nwc_f32( 0, 0, 0, 0.0f, 0.0f, 0, &op); break; case 18: xnn_setup_global_average_pooling_nwc_f32( op, 0, 0, NULL, NULL, NULL); break; case 19: xnn_create_hardswish_nc_f32( 0, 0, 0, 0, &op); break; case 20: xnn_setup_hardswish_nc_f32( op, 0, NULL, NULL, NULL); break; case 21: xnn_create_max_pooling2d_nhwc_f32( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0, &op); break; case 22: xnn_setup_max_pooling2d_nhwc_f32( op, 0, 0, 0, NULL, NULL, NULL); break; case 23: xnn_create_maximum_nd_f32( 0, &op); break; case 24: xnn_setup_maximum_nd_f32( op, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); break; case 25: xnn_create_minimum_nd_f32( 0, &op); break; case 26: xnn_setup_minimum_nd_f32( op, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); break; case 27: xnn_create_multiply_nd_f32( 0.0f, 0.0f, 0, &op); break; case 28: xnn_setup_multiply_nd_f32( op, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); break; case 29: xnn_create_prelu_nc_f32( 0, 0, 0, NULL, 0, &op); break; case 30: xnn_setup_prelu_nc_f32( op, 0, NULL, NULL, NULL); break; case 31: xnn_create_resize_bilinear2d_nhwc_f32( 0, 0, 0, 0, &op); break; case 32: xnn_setup_resize_bilinear2d_nhwc_f32( op, 0, 0, 0, 0, 0, NULL, NULL, NULL); break; case 33: xnn_create_sigmoid_nc_f32( 0, 0, 0, 0, &op); break; case 34: xnn_setup_sigmoid_nc_f32( op, 0, NULL, NULL, NULL); break; case 35: xnn_create_softmax_nc_f32( 0, 0, 0, 0, &op); break; case 36: xnn_setup_softmax_nc_f32( op, 0, NULL, NULL, NULL); break; case 37: xnn_create_subtract_nd_f32( 0.0f, 0.0f, 0, &op); break; case 38: xnn_setup_subtract_nd_f32( op, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); break; case 39: xnn_create_channel_shuffle_nc_x32( 0, 0, 0, 0, 0, &op); break; case 40: xnn_setup_channel_shuffle_nc_x32( op, 0, NULL, NULL, NULL); break; case 41: xnn_create_unpooling2d_nhwc_x32( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, &op); break; case 42: xnn_setup_unpooling2d_nhwc_x32( op, 0, 0, 0, NULL, NULL, NULL, NULL); break; } xnn_deinitialize(); }