1 /*========================== begin_copyright_notice ============================
2 
3 Copyright (C) 2021 Intel Corporation
4 
5 SPDX-License-Identifier: MIT
6 
7 ============================= end_copyright_notice ===========================*/
8 
9 #ifndef __SPIRV_MACROS_H__
10 #define __SPIRV_MACROS_H__
11 
12 #if !defined(__USE_KHRONOS_SPIRV_TRANSLATOR__)
13 #define SPIRV_OVERLOADABLE
14 #define SPIRV_BUILTIN(opcode, old_mangling, new_mangling) \
15     __builtin_spirv_Op##opcode##old_mangling
16 #define SPIRV_BUILTIN_NO_OP(opcode, old_mangling, new_mangling) \
17     __builtin_spirv_##opcode##old_mangling
18 #define SPIRV_OCL_BUILTIN(func, old_mangling, new_mangling) \
19     __builtin_spirv_OpenCL_##func##old_mangling
20 #else
21 #define SPIRV_OVERLOADABLE __attribute__((overloadable))
22 #define SPIRV_BUILTIN(opcode, old_mangling, new_mangling) \
23     __spirv_##opcode##new_mangling
24 #define SPIRV_BUILTIN_NO_OP(opcode, old_mangling, new_mangling) \
25     __spirv_##opcode##new_mangling
26 #define SPIRV_OCL_BUILTIN(func, old_mangling, new_mangling) \
27     __spirv_ocl_##func##new_mangling
28 #endif
29 
30 #endif // __SPIRV_MACROS_H__