1/*******************************************************************************
2* Copyright 2019-2022 Intel Corporation
3*
4* Licensed under the Apache License, Version 2.0 (the "License");
5* you may not use this file except in compliance with the License.
6* You may obtain a copy of the License at
7*
8* http://www.apache.org/licenses/LICENSE-2.0
9*
10* Unless required by applicable law or agreed to in writing, software
11* distributed under the License is distributed on an "AS IS" BASIS,
12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13* See the License for the specific language governing permissions and
14* limitations under the License.
15*******************************************************************************/
16
17#include "gpu/gpu_impl_list.hpp"
18
19namespace dnnl {
20namespace impl {
21namespace gpu {
22
23const impl_list_item_t *gpu_impl_list_t::get_implementation_list(
24 const op_desc_t *desc) {
25 static const impl_list_item_t empty_list[] = {nullptr};
26
27 // clang-format off
28#define CASE(kind) \
29 case primitive_kind::kind: \
30 return get_##kind##_impl_list((const kind##_desc_t *)desc);
31 switch ((int)desc->kind) {
32 CASE(batch_normalization);
33 CASE(binary);
34 CASE(convolution);
35 CASE(deconvolution);
36 CASE(eltwise);
37 CASE(gemm);
38 CASE(inner_product);
39 CASE(layer_normalization);
40 CASE(lrn);
41 CASE(matmul);
42 CASE(pooling);
43 CASE(prelu);
44 CASE(reduction);
45 CASE(resampling);
46 CASE(rnn);
47 CASE(shuffle);
48 CASE(softmax);
49 CASE(zero_pad);
50 default: assert(!"unknown primitive kind"); return empty_list;
51 }
52#undef CASE
53 // clang-format on
54}
55
56} // namespace gpu
57} // namespace impl
58} // namespace dnnl
59