/*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd. All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include "Builders.h"
-#include "kernels/Cast.h"
+#include "kernels/Select.h"
namespace luci_interpreter
{
-std::unique_ptr<Kernel> build_kernel_CircleCast(std::vector<const Tensor *> &&inputs,
- std::vector<Tensor *> &&outputs,
- const uint32_t op_index, KernelBuilder &builder)
+std::unique_ptr<Kernel> build_kernel_CircleSelect(const luci::CircleNode *circle_node,
+ KernelBuilderHelper &helper)
{
- assert(inputs.size() == 1);
+ const auto *node = loco::must_cast<const luci::CircleSelect *>(circle_node);
+ assert(node->arity() == 3);
- const Tensor *input = inputs.at(0);
- Tensor *output = outputs.at(0);
+ const Tensor *c = helper.getInputTensor(node->condition());
+ const Tensor *t = helper.getInputTensor(node->t());
+ const Tensor *e = helper.getInputTensor(node->e());
+ Tensor *output = helper.getOutputTensor(node);
- return std::make_unique<kernels::Cast>(input, output);
+ return std::make_unique<kernels::Select>(c, t, e, output);
}
} // namespace luci_interpreter