xref: /aosp_15_r20/external/XNNPACK/src/xnnpack/subgraph-validation.h (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2022 Google LLC
2*4bdc9457SAndroid Build Coastguard Worker //
3*4bdc9457SAndroid Build Coastguard Worker // This source code is licensed under the BSD-style license found in the
4*4bdc9457SAndroid Build Coastguard Worker // LICENSE file in the root directory of this source tree.
5*4bdc9457SAndroid Build Coastguard Worker 
6*4bdc9457SAndroid Build Coastguard Worker #pragma once
7*4bdc9457SAndroid Build Coastguard Worker 
8*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack.h>
9*4bdc9457SAndroid Build Coastguard Worker #include <xnnpack/subgraph.h>
10*4bdc9457SAndroid Build Coastguard Worker 
11*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus
12*4bdc9457SAndroid Build Coastguard Worker extern "C" {
13*4bdc9457SAndroid Build Coastguard Worker #endif
14*4bdc9457SAndroid Build Coastguard Worker 
15*4bdc9457SAndroid Build Coastguard Worker enum xnn_status xnn_subgraph_check_xnnpack_initialized(enum xnn_node_type node_type);
16*4bdc9457SAndroid Build Coastguard Worker enum xnn_status xnn_subgraph_check_input_node_id(enum xnn_node_type node_type, uint32_t input_id, size_t num_values);
17*4bdc9457SAndroid Build Coastguard Worker enum xnn_status xnn_subgraph_check_nth_input_node_id(
18*4bdc9457SAndroid Build Coastguard Worker   enum xnn_node_type node_type,
19*4bdc9457SAndroid Build Coastguard Worker   uint32_t input_id,
20*4bdc9457SAndroid Build Coastguard Worker   size_t num_values,
21*4bdc9457SAndroid Build Coastguard Worker   size_t nth);
22*4bdc9457SAndroid Build Coastguard Worker enum xnn_status xnn_subgraph_check_input_type_dense(
23*4bdc9457SAndroid Build Coastguard Worker   enum xnn_node_type node_type,
24*4bdc9457SAndroid Build Coastguard Worker   uint32_t input_id,
25*4bdc9457SAndroid Build Coastguard Worker   const struct xnn_value* input_value);
26*4bdc9457SAndroid Build Coastguard Worker enum xnn_status xnn_subgraph_check_nth_input_type_dense(
27*4bdc9457SAndroid Build Coastguard Worker   enum xnn_node_type node_type,
28*4bdc9457SAndroid Build Coastguard Worker   uint32_t input_id,
29*4bdc9457SAndroid Build Coastguard Worker   const struct xnn_value* input_value,
30*4bdc9457SAndroid Build Coastguard Worker   size_t nth);
31*4bdc9457SAndroid Build Coastguard Worker enum xnn_status xnn_subgraph_check_output_node_id(enum xnn_node_type node_type, uint32_t output_id, size_t num_values);
32*4bdc9457SAndroid Build Coastguard Worker enum xnn_status xnn_subgraph_check_output_type_dense(
33*4bdc9457SAndroid Build Coastguard Worker   enum xnn_node_type node_type,
34*4bdc9457SAndroid Build Coastguard Worker   uint32_t output_id,
35*4bdc9457SAndroid Build Coastguard Worker   const struct xnn_value* output_value);
36*4bdc9457SAndroid Build Coastguard Worker enum xnn_status xnn_subgraph_check_datatype_matches(
37*4bdc9457SAndroid Build Coastguard Worker   enum xnn_node_type node_type,
38*4bdc9457SAndroid Build Coastguard Worker   uint32_t input_id,
39*4bdc9457SAndroid Build Coastguard Worker   const struct xnn_value* input_value,
40*4bdc9457SAndroid Build Coastguard Worker   uint32_t output_id,
41*4bdc9457SAndroid Build Coastguard Worker   const struct xnn_value* output_value);
42*4bdc9457SAndroid Build Coastguard Worker enum xnn_status xnn_subgraph_check_datatype_matches_two_inputs(
43*4bdc9457SAndroid Build Coastguard Worker   enum xnn_node_type node_type,
44*4bdc9457SAndroid Build Coastguard Worker   uint32_t input1_id,
45*4bdc9457SAndroid Build Coastguard Worker   const struct xnn_value* input1_value,
46*4bdc9457SAndroid Build Coastguard Worker   uint32_t input2_id,
47*4bdc9457SAndroid Build Coastguard Worker   const struct xnn_value* input2_value,
48*4bdc9457SAndroid Build Coastguard Worker   uint32_t output_id,
49*4bdc9457SAndroid Build Coastguard Worker   const struct xnn_value* output_value);
50*4bdc9457SAndroid Build Coastguard Worker enum xnn_status xnn_subgraph_check_output_min_max(enum xnn_node_type node_type, float output_min, float output_max);
51*4bdc9457SAndroid Build Coastguard Worker 
52*4bdc9457SAndroid Build Coastguard Worker #ifdef __cplusplus
53*4bdc9457SAndroid Build Coastguard Worker }  // extern "C"
54*4bdc9457SAndroid Build Coastguard Worker #endif
55