Fraser Cormack ea685890b8
[libclc] Reduce include usage in OpenCL builtins (#146840)
This commit starts the process of reducing the amount of code included
by OpenCL builtins, hopefully reducing build times in the process.

It introduces a minimal OpenCL header - opencl-base.h - which includes
only the OpenCL type definitions and the macros necessary for
declaring/defining functions.

Where the OpenCL builtin implementations would currently include the
whole of <clc/opencl/clc.h>, which defines *all* OpenCL builtins, now
they include only the specific declaration they need.

This mirrors how the CLC builtins are defined.
2025-07-07 10:20:28 +01:00

45 lines
2.5 KiB
Common Lisp

//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#include <clc/integer/clc_upsample.h>
#include <clc/opencl/integer/upsample.h>
#define __CLC_UPSAMPLE_IMPL(BGENTYPE, GENTYPE, UGENTYPE) \
_CLC_OVERLOAD _CLC_DEF BGENTYPE upsample(GENTYPE hi, UGENTYPE lo) { \
return __clc_upsample(hi, lo); \
} \
_CLC_OVERLOAD _CLC_DEF BGENTYPE##2 upsample(GENTYPE##2 hi, UGENTYPE##2 lo) { \
return __clc_upsample(hi, lo); \
} \
_CLC_OVERLOAD _CLC_DEF BGENTYPE##3 upsample(GENTYPE##3 hi, UGENTYPE##3 lo) { \
return __clc_upsample(hi, lo); \
} \
_CLC_OVERLOAD _CLC_DEF BGENTYPE##4 upsample(GENTYPE##4 hi, UGENTYPE##4 lo) { \
return __clc_upsample(hi, lo); \
} \
_CLC_OVERLOAD _CLC_DEF BGENTYPE##8 upsample(GENTYPE##8 hi, UGENTYPE##8 lo) { \
return __clc_upsample(hi, lo); \
} \
_CLC_OVERLOAD _CLC_DEF BGENTYPE##16 upsample(GENTYPE##16 hi, \
UGENTYPE##16 lo) { \
return __clc_upsample(hi, lo); \
}
#define __CLC_UPSAMPLE_TYPES() \
__CLC_UPSAMPLE_IMPL(short, char, uchar) \
__CLC_UPSAMPLE_IMPL(ushort, uchar, uchar) \
__CLC_UPSAMPLE_IMPL(int, short, ushort) \
__CLC_UPSAMPLE_IMPL(uint, ushort, ushort) \
__CLC_UPSAMPLE_IMPL(long, int, uint) \
__CLC_UPSAMPLE_IMPL(ulong, uint, uint)
__CLC_UPSAMPLE_TYPES()
#undef __CLC_UPSAMPLE_TYPES
#undef __CLC_UPSAMPLE_IMPL