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