// Copyright Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #include #include namespace rocRoller { template <> std::shared_ptr> GetGenerator(Register::ValuePtr dst, Register::ValuePtr arg, Expression::Exponential2 const&) { return Component::Get>( getContextFromValues(dst, arg), dst->regType(), dst->variableType().dataType); } template <> Generator Exponential2Generator::generate( Register::ValuePtr dest, Register::ValuePtr arg, Expression::Exponential2 const&) { AssertFatal(arg != nullptr); AssertFatal(dest != nullptr); co_yield_(Instruction("v_exp_f32", {dest}, {arg}, {}, "")); } template <> Generator Exponential2Generator::generate( Register::ValuePtr dest, Register::ValuePtr arg, Expression::Exponential2 const&) { AssertFatal(arg != nullptr); AssertFatal(dest != nullptr); co_yield_(Instruction("v_exp_f16", {dest}, {arg}, {}, "")); } }