1/* 2 * Copyright (c) 2014 Advanced Micro Devices, Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a copy 5 * of this software and associated documentation files (the "Software"), to deal 6 * in the Software without restriction, including without limitation the rights 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 * copies of the Software, and to permit persons to whom the Software is 9 * furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice shall be included in 12 * all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 * THE SOFTWARE. 21 */ 22 23#include <clc/clc.h> 24 25#include "../../../generic/lib/clcmacro.h" 26 27#ifdef __HAS_LDEXPF__ 28#define BUILTINF __builtin_amdgcn_ldexpf 29#else 30#include "math/clc_ldexp.h" 31#define BUILTINF __clc_ldexp 32#endif 33 34// This defines all the ldexp(floatN, intN) variants. 35_CLC_DEFINE_BINARY_BUILTIN(float, ldexp, BUILTINF, float, int); 36 37#ifdef cl_khr_fp64 38 #pragma OPENCL EXTENSION cl_khr_fp64 : enable 39 // This defines all the ldexp(doubleN, intN) variants. 40 _CLC_DEFINE_BINARY_BUILTIN(double, ldexp, __builtin_amdgcn_ldexp, double, int); 41#endif 42 43// This defines all the ldexp(GENTYPE, int); 44#define __CLC_BODY <../../../generic/lib/math/ldexp.inc> 45#include <clc/math/gentype.inc> 46 47#undef BUILTINF 48