Skip to content

Commit 6b2ca14

Browse files
committed
Address Feedback:
* Remove cast reshuffling * Wrap image array read/write intrinsics in macros
1 parent ee82ed8 commit 6b2ca14

File tree

1 file changed

+147
-133
lines changed
  • libclc/ptx-nvidiacl/libspirv/images

1 file changed

+147
-133
lines changed

libclc/ptx-nvidiacl/libspirv/images/image.cl

Lines changed: 147 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -256,53 +256,55 @@ pixelf32 as_pixelf32(int4 v) { return as_float4(v); }
256256
image, x * sizeof(pixelf##pixelf_size), y, z)); \
257257
}
258258

259-
_DEFINE_VEC4_CAST(int, int)
259+
_DEFINE_VEC4_CAST(float, int)
260+
_DEFINE_VEC4_CAST(int, float)
261+
_DEFINE_VEC4_CAST(float, uint)
262+
_DEFINE_VEC4_CAST(uint, float)
263+
_DEFINE_VEC4_CAST(uint, int)
260264
_DEFINE_VEC4_CAST(int, uint)
261265
_DEFINE_VEC4_CAST(int, short)
262266
_DEFINE_VEC4_CAST(int, char)
263-
_DEFINE_VEC4_CAST(int, float)
264267
_DEFINE_VEC4_CAST(uint, ushort)
265268
_DEFINE_VEC4_CAST(uint, uchar)
266-
_DEFINE_VEC4_CAST(short, short)
267-
_DEFINE_VEC4_CAST(short, ushort)
268269
_DEFINE_VEC4_CAST(short, char)
269270
_DEFINE_VEC4_CAST(short, uchar)
270-
_DEFINE_VEC4_CAST(float, int)
271-
_DEFINE_VEC4_CAST(float, uint)
272271
_DEFINE_VEC4_CAST(float, half)
272+
_DEFINE_VEC4_CAST(int, int)
273+
_DEFINE_VEC4_CAST(short, ushort)
274+
_DEFINE_VEC4_CAST(short, short)
273275

274276
_DEFINE_VEC4_TO_VEC2_CAST(int, int)
275-
_DEFINE_VEC4_TO_VEC2_CAST(int, uint)
277+
_DEFINE_VEC4_TO_VEC2_CAST(uint, uint)
278+
_DEFINE_VEC4_TO_VEC2_CAST(float, float)
279+
_DEFINE_VEC4_TO_VEC2_CAST(short, short)
280+
_DEFINE_VEC4_TO_VEC2_CAST(short, char)
276281
_DEFINE_VEC4_TO_VEC2_CAST(int, short)
277282
_DEFINE_VEC4_TO_VEC2_CAST(int, char)
278-
_DEFINE_VEC4_TO_VEC2_CAST(uint, uint)
279283
_DEFINE_VEC4_TO_VEC2_CAST(uint, ushort)
280284
_DEFINE_VEC4_TO_VEC2_CAST(uint, uchar)
281-
_DEFINE_VEC4_TO_VEC2_CAST(short, short)
282-
_DEFINE_VEC4_TO_VEC2_CAST(short, ushort)
283-
_DEFINE_VEC4_TO_VEC2_CAST(short, char)
284-
_DEFINE_VEC4_TO_VEC2_CAST(float, float)
285285
_DEFINE_VEC4_TO_VEC2_CAST(float, half)
286+
_DEFINE_VEC4_TO_VEC2_CAST(int, uint)
287+
_DEFINE_VEC4_TO_VEC2_CAST(short, ushort)
286288

287-
_DEFINE_VEC2_CAST(int, int)
288289
_DEFINE_VEC2_CAST(int, float)
289-
_DEFINE_VEC2_CAST(short, short)
290290
_DEFINE_VEC2_CAST(short, char)
291291
_DEFINE_VEC2_CAST(short, uchar)
292+
_DEFINE_VEC2_CAST(int, int)
293+
_DEFINE_VEC2_CAST(short, short)
292294

293-
_DEFINE_CAST(int, int)
294-
_DEFINE_CAST(int, uint)
295295
_DEFINE_CAST(int, float)
296-
_DEFINE_CAST(short, short)
297-
_DEFINE_CAST(short, ushort)
298-
_DEFINE_CAST(short, char)
299-
_DEFINE_CAST(short, uchar)
300296
_DEFINE_CAST(float, float)
301297
_DEFINE_CAST(float2, float2)
302298
_DEFINE_CAST(float4, float4)
303299
_DEFINE_CAST(pixelf32, float4)
304300
_DEFINE_CAST(pixelf32, pixelf32)
305301
_DEFINE_CAST(float4, pixelf32)
302+
_DEFINE_CAST(int, int)
303+
_DEFINE_CAST(int, uint)
304+
_DEFINE_CAST(short, short)
305+
_DEFINE_CAST(short, ushort)
306+
_DEFINE_CAST(short, char)
307+
_DEFINE_CAST(short, uchar)
306308

307309
_DEFINE_PIXELF_CAST(32, float4, int4)
308310
_DEFINE_PIXELF_CAST(32, float4, uint4)
@@ -2602,48 +2604,116 @@ _CLC_DEFINE_MIPMAP_BINDLESS_READS_BUILTIN(half4, 3, Dv4_DF16_, v4f16, Dv4_f, flo
26022604

26032605
// ------- Image Arrays / Layered Images -------
26042606

2605-
// // --- THUNKS: Surface Array Reads ---
2606-
// int
2607-
int __nvvm_suld_1d_array_i32_clamp_s(long, int, int) __asm(
2608-
"llvm.nvvm.suld.1d.array.i32.clamp");
2609-
int __nvvm_suld_2d_array_i32_clamp_s(long, int, int, int) __asm(
2610-
"llvm.nvvm.suld.2d.array.i32.clamp");
2611-
int2 __nvvm_suld_1d_array_v2i32_clamp_s(long, int, int) __asm(
2612-
"__clc_llvm_nvvm_suld_1d_array_v2i32_clamp");
2613-
int2 __nvvm_suld_2d_array_v2i32_clamp_s(long, int, int, int) __asm(
2614-
"__clc_llvm_nvvm_suld_2d_array_v2i32_clamp");
2615-
int4 __nvvm_suld_1d_array_v4i32_clamp_s(long, int, int) __asm(
2616-
"__clc_llvm_nvvm_suld_1d_array_v4i32_clamp");
2617-
int4 __nvvm_suld_2d_array_v4i32_clamp_s(long, int, int, int) __asm(
2618-
"__clc_llvm_nvvm_suld_2d_array_v4i32_clamp");
2607+
// Read/Write Intrinsic Thunks
26192608

2620-
// short
2621-
short __nvvm_suld_1d_array_i16_clamp_s(long, int, int) __asm(
2622-
"llvm.nvvm.suld.1d.array.i16.clamp");
2623-
short __nvvm_suld_2d_array_i16_clamp_s(long, int, int, int) __asm(
2624-
"llvm.nvvm.suld.2d.array.i16.clamp");
2625-
short2 __nvvm_suld_1d_array_v2i16_clamp_s(long, int, int) __asm(
2626-
"__clc_llvm_nvvm_suld_1d_array_v2i16_clamp");
2627-
short2 __nvvm_suld_2d_array_v2i16_clamp_s(long, int, int, int) __asm(
2628-
"__clc_llvm_nvvm_suld_2d_array_v2i16_clamp");
2629-
short4 __nvvm_suld_1d_array_v4i16_clamp_s(long, int, int) __asm(
2630-
"__clc_llvm_nvvm_suld_1d_array_v4i16_clamp");
2631-
short4 __nvvm_suld_2d_array_v4i16_clamp_s(long, int, int, int) __asm(
2632-
"__clc_llvm_nvvm_suld_2d_array_v4i16_clamp");
2633-
2634-
// char helper -- i8 intrinsic returns i16, requires helper
2635-
short __nvvm_suld_1d_array_i8_clamp_s_helper(long, int, int) __asm(
2636-
"llvm.nvvm.suld.1d.array.i8.clamp");
2637-
short __nvvm_suld_2d_array_i8_clamp_s_helper(long, int, int, int) __asm(
2638-
"llvm.nvvm.suld.2d.array.i8.clamp");
2639-
short2 __nvvm_suld_1d_array_v2i8_clamp_s_helper(long, int, int) __asm(
2640-
"__clc_llvm_nvvm_suld_1d_array_v2i8_clamp");
2641-
short2 __nvvm_suld_2d_array_v2i8_clamp_s_helper(long, int, int, int) __asm(
2642-
"__clc_llvm_nvvm_suld_2d_array_v2i8_clamp");
2643-
short4 __nvvm_suld_1d_array_v4i8_clamp_s_helper(long, int, int) __asm(
2644-
"__clc_llvm_nvvm_suld_1d_array_v4i8_clamp");
2645-
short4 __nvvm_suld_2d_array_v4i8_clamp_s_helper(long, int, int, int) __asm(
2646-
"__clc_llvm_nvvm_suld_2d_array_v4i8_clamp");
2609+
#define COORD_PARAMS_1D(type) type
2610+
#define COORD_PARAMS_2D(type) type, type
2611+
2612+
// Vector of size 1 is scalar
2613+
#define ELEM_VEC_1(elem_t) elem_t
2614+
#define ELEM_VEC_2(elem_t) elem_t##2
2615+
#define ELEM_VEC_4(elem_t) elem_t##4
2616+
2617+
#define VEC_SIZE_1(elem_t, size) elem_t##size
2618+
#define VEC_SIZE_2(elem_t, size) v2##elem_t##size
2619+
#define VEC_SIZE_4(elem_t, size) v4##elem_t##size
2620+
2621+
#define COLOR_INPUT_1_CHANNEL(elem_t) elem_t
2622+
#define COLOR_INPUT_2_CHANNEL(elem_t) elem_t, elem_t
2623+
#define COLOR_INPUT_4_CHANNEL(elem_t) elem_t, elem_t, elem_t, elem_t
2624+
2625+
#define _CONCAT(x, y) x##y
2626+
#define CONCAT(x, y) _CONCAT(x, y)
2627+
2628+
#define _STR(x) #x
2629+
#define STR(x) _STR(x)
2630+
2631+
#define _NVVM_FUNC_UNDERSCORE(name, dim, vec_size, help, pre, post) \
2632+
pre##nvvm_##name##_##dim##d##_array_##vec_size##_clamp##post##help
2633+
#define NVVM_FUNC_UNDERSCORE(a, b, c, d, e, f) \
2634+
_NVVM_FUNC_UNDERSCORE(a, b, c, d, e, f)
2635+
2636+
#define _NVVM_FUNC_PERIOD(name, dim, vec_size, help, pre, post) \
2637+
pre##llvm.nvvm.name.dim##d.array.vec_size.clamp##post##help
2638+
#define NVVM_FUNC_PERIOD(a, b, c, d, e, f) _NVVM_FUNC_PERIOD(a, b, c, d, e, f)
2639+
2640+
#define BINDLESS_INTRINSIC_FUNC_ND(ret_type, dimension, nvvm_elem_t_mangled, \
2641+
vec_size, elem_t_size, separator, \
2642+
clc_prefix, helper) \
2643+
ELEM_VEC_##vec_size(ret_type) CONCAT( \
2644+
__, \
2645+
NVVM_FUNC_UNDERSCORE( \
2646+
suld, dimension, \
2647+
VEC_SIZE_##vec_size(nvvm_elem_t_mangled, elem_t_size), helper, , \
2648+
_s)( \
2649+
long, int, \
2650+
COORD_PARAMS_##dimension##D( \
2651+
int))) __asm(STR(NVVM_FUNC_##separator(suld, dimension, \
2652+
VEC_SIZE_##vec_size( \
2653+
nvvm_elem_t_mangled, \
2654+
elem_t_size), \
2655+
, clc_prefix, ))); \
2656+
void CONCAT( \
2657+
__, \
2658+
NVVM_FUNC_UNDERSCORE( \
2659+
sust, dimension, \
2660+
VEC_SIZE_##vec_size(nvvm_elem_t_mangled, elem_t_size), helper, , \
2661+
_s)( \
2662+
unsigned long, int, COORD_PARAMS_##dimension##D(int), \
2663+
COLOR_INPUT_##vec_size##_CHANNEL( \
2664+
ret_type))) __asm(STR(NVVM_FUNC_PERIOD(sust.b, dimension, \
2665+
VEC_SIZE_##vec_size( \
2666+
nvvm_elem_t_mangled, \
2667+
elem_t_size), \
2668+
, , )));
2669+
2670+
#define BINDLESS_INTRINSIC_FUNC_VEC_SIZE_N(ret_type, vec_size, \
2671+
nvvm_elem_t_mangled, elem_t_size, \
2672+
separator, clc_prefix, helper) \
2673+
BINDLESS_INTRINSIC_FUNC_ND(ret_type, 1, nvvm_elem_t_mangled, vec_size, \
2674+
elem_t_size, separator, clc_prefix, helper) \
2675+
BINDLESS_INTRINSIC_FUNC_ND(ret_type, 2, nvvm_elem_t_mangled, vec_size, \
2676+
elem_t_size, separator, clc_prefix, helper)
2677+
2678+
#define BINDLESS_INTRINSIC_FUNC_ALL(ret_type, nvvm_elem_t_mangled, \
2679+
elem_t_size, helper) \
2680+
BINDLESS_INTRINSIC_FUNC_VEC_SIZE_N(ret_type, 1, nvvm_elem_t_mangled, \
2681+
elem_t_size, PERIOD, , helper) \
2682+
BINDLESS_INTRINSIC_FUNC_VEC_SIZE_N(ret_type, 2, nvvm_elem_t_mangled, \
2683+
elem_t_size, UNDERSCORE, __clc_llvm_, \
2684+
helper) \
2685+
BINDLESS_INTRINSIC_FUNC_VEC_SIZE_N(ret_type, 4, nvvm_elem_t_mangled, \
2686+
elem_t_size, UNDERSCORE, __clc_llvm_, \
2687+
helper)
2688+
2689+
BINDLESS_INTRINSIC_FUNC_ALL(int, i, 32, )
2690+
BINDLESS_INTRINSIC_FUNC_ALL(short, i, 16, )
2691+
BINDLESS_INTRINSIC_FUNC_ALL(short, i, 8, _helper)
2692+
2693+
#undef COORD_PARAMS_1D
2694+
#undef COORD_PARAMS_2D
2695+
#undef ELEM_VEC_1
2696+
#undef ELEM_VEC_2
2697+
#undef ELEM_VEC_4
2698+
#undef VEC_SIZE_1
2699+
#undef VEC_SIZE_2
2700+
#undef VEC_SIZE_4
2701+
#undef COLOR_INPUT_1_CHANNEL
2702+
#undef COLOR_INPUT_2_CHANNEL
2703+
#undef COLOR_INPUT_4_CHANNEL
2704+
#undef _CONCAT
2705+
#undef CONCAT
2706+
#undef _STR
2707+
#undef STR
2708+
#undef _NVVM_FUNC_PERIOD
2709+
#undef NVVM_FUNC_PERIOD
2710+
#undef _NVVM_FUNC_UNDERSCORE
2711+
#undef NVVM_FUNC_UNDERSCORE
2712+
#undef BINDLESS_INTRINSIC_FUNC_ND
2713+
#undef BINDLESS_INTRINSIC_FUNC_VEC_SIZE_N
2714+
#undef BINDLESS_INTRINSIC_FUNC_ALL
2715+
2716+
// // --- THUNKS: Surface Array Reads ---
26472717

26482718
// Macro to generate surface array fetches
26492719
#define _CLC_DEFINE_SURFACE_ARRAY_BINDLESS_THUNK_READS_BUILTIN( \
@@ -2688,61 +2758,6 @@ _CLC_DEFINE_SURFACE_ARRAY_BINDLESS_THUNK_READS_BUILTIN(half4, short4, short4, v4
26882758
#undef _CLC_DEFINE_SURFACE_ARRAY_BINDLESS_THUNK_READS_BUILTIN
26892759

26902760
// // --- THUNKS: Surface Array Writes ---
2691-
// int
2692-
void __nvvm_sust_1d_array_v4i32_clamp_s(
2693-
unsigned long, int, int, int, int, int,
2694-
int) __asm("llvm.nvvm.sust.b.1d.array.v4i32.clamp");
2695-
void __nvvm_sust_2d_array_v4i32_clamp_s(
2696-
unsigned long, int, int, int, int, int, int,
2697-
int) __asm("llvm.nvvm.sust.b.2d.array.v4i32.clamp");
2698-
void __nvvm_sust_1d_array_v2i32_clamp_s(
2699-
unsigned long, int, int, int,
2700-
int) __asm("llvm.nvvm.sust.b.1d.array.v2i32.clamp");
2701-
void __nvvm_sust_2d_array_v2i32_clamp_s(
2702-
unsigned long, int, int, int, int,
2703-
int) __asm("llvm.nvvm.sust.b.2d.array.v2i32.clamp");
2704-
void __nvvm_sust_1d_array_i32_clamp_s(unsigned long, int, int, int) __asm(
2705-
"llvm.nvvm.sust.b.1d.array.i32.clamp");
2706-
void __nvvm_sust_2d_array_i32_clamp_s(unsigned long, int, int, int, int) __asm(
2707-
"llvm.nvvm.sust.b.2d.array.i32.clamp");
2708-
2709-
// short
2710-
void __nvvm_sust_1d_array_v4i16_clamp_s(
2711-
unsigned long, int, int, short, short, short,
2712-
short) __asm("llvm.nvvm.sust.b.1d.array.v4i16.clamp");
2713-
void __nvvm_sust_2d_array_v4i16_clamp_s(
2714-
unsigned long, int, int, int, short, short, short,
2715-
short) __asm("llvm.nvvm.sust.b.2d.array.v4i16.clamp");
2716-
void __nvvm_sust_1d_array_v2i16_clamp_s(
2717-
unsigned long, int, int, short,
2718-
short) __asm("llvm.nvvm.sust.b.1d.array.v2i16.clamp");
2719-
void __nvvm_sust_2d_array_v2i16_clamp_s(
2720-
unsigned long, int, int, int, short,
2721-
short) __asm("llvm.nvvm.sust.b.2d.array.v2i16.clamp");
2722-
void __nvvm_sust_1d_array_i16_clamp_s(unsigned long, int, int, short) __asm(
2723-
"llvm.nvvm.sust.b.1d.array.i16.clamp");
2724-
void __nvvm_sust_2d_array_i16_clamp_s(
2725-
unsigned long, int, int, int,
2726-
short) __asm("llvm.nvvm.sust.b.2d.array.i16.clamp");
2727-
2728-
// char helper -- i8 intrinsic takes i16, requires helper
2729-
void __nvvm_sust_1d_array_v4i8_clamp_s_helper(
2730-
unsigned long, int, int, short, short, short,
2731-
short) __asm("llvm.nvvm.sust.b.1d.array.v4i8.clamp");
2732-
void __nvvm_sust_2d_array_v4i8_clamp_s_helper(
2733-
unsigned long, int, int, int, short, short, short,
2734-
short) __asm("llvm.nvvm.sust.b.2d.array.v4i8.clamp");
2735-
void __nvvm_sust_1d_array_v2i8_clamp_s_helper(
2736-
unsigned long, int, int, short,
2737-
short) __asm("llvm.nvvm.sust.b.1d.array.v2i8.clamp");
2738-
void __nvvm_sust_2d_array_v2i8_clamp_s_helper(
2739-
unsigned long, int, int, int, short,
2740-
short) __asm("llvm.nvvm.sust.b.2d.array.v2i8.clamp");
2741-
void __nvvm_sust_1d_array_i8_clamp_s_helper(
2742-
unsigned long, int, int, short) __asm("llvm.nvvm.sust.b.1d.array.i8.clamp");
2743-
void __nvvm_sust_2d_array_i8_clamp_s_helper(
2744-
unsigned long, int, int, int,
2745-
short) __asm("llvm.nvvm.sust.b.2d.array.i8.clamp");
27462761

27472762
#define COLOR_INPUT_1_CHANNEL(elem_t) elem_t a
27482763
#define COLOR_INPUT_2_CHANNEL(elem_t) elem_t a, elem_t b
@@ -2842,41 +2857,40 @@ _CLC_DEFINE_SURFACE_ARRAY_BINDLESS_THUNK_WRITES_BUILTIN(half, short, v4f16, v4i1
28422857
#define DVEC_SIZE_2(prefix, elem_t, postfix) prefix##Dv2_##elem_t##postfix
28432858
#define DVEC_SIZE_4(prefix, elem_t, postfix) prefix##Dv4_##elem_t##postfix
28442859

2845-
#define CONCAT(x, y) x##y
2846-
#define CONCAT_HELP(x, y) CONCAT(x, y)
2860+
#define _CONCAT(x, y) x##y
2861+
#define CONCAT(x, y) _CONCAT(x, y)
28472862

2848-
#define NVVM_FUNC(name, dimension, vec_size_mangled) \
2863+
#define _NVVM_FUNC(name, dimension, vec_size_mangled) \
28492864
__nvvm_##name##_##dimension##d_array_##vec_size_mangled##_clamp_s
2850-
#define NVVM_FUNC_HELP(a, b, c) NVVM_FUNC(a, b, c)
2865+
#define NVVM_FUNC(a, b, c) _NVVM_FUNC(a, b, c)
28512866

2852-
#define MANGLE_FUNC_IMG_HANDLE_HELP(size, name, prefix, postfix) \
2867+
#define MANGLE_FUNC_IMG_HANDLE_HELPER(size, name, prefix, postfix) \
28532868
MANGLE_FUNC_IMG_HANDLE(size, name, prefix, postfix)
28542869

28552870
#define _CLC_DEFINE_IMAGE_ARRAY_BINDLESS_READ_BUILTIN( \
28562871
elem_t, vec_size, dimension, ocl_elem_t_mangled, nvvm_elem_t_mangled, \
28572872
elem_t_size) \
2858-
_CLC_DEF ELEM_VEC_##vec_size(elem_t) MANGLE_FUNC_IMG_HANDLE_HELP( \
2873+
_CLC_DEF ELEM_VEC_##vec_size(elem_t) MANGLE_FUNC_IMG_HANDLE_HELPER( \
28592874
22, __spirv_ImageArrayRead, \
28602875
DVEC_SIZE_##vec_size(I, ocl_elem_t_mangled, ), \
28612876
DVEC_SIZE_##dimension(, i, ET_T0_T1_i))( \
28622877
ulong imageHandle, COORD_INPUT_##dimension##D(int), int idx) { \
2863-
return NVVM_FUNC_HELP( \
2864-
suld, dimension, \
2865-
VEC_SIZE_##vec_size(nvvm_elem_t_mangled, elem_t_size))( \
2878+
return NVVM_FUNC(suld, dimension, \
2879+
VEC_SIZE_##vec_size(nvvm_elem_t_mangled, elem_t_size))( \
28662880
imageHandle, idx, \
28672881
COORD_PARAMS_##dimension##D(ELEM_VEC_##vec_size(elem_t))); \
28682882
}
28692883

28702884
#define _CLC_DEFINE_IMAGE_ARRAY_BINDLESS_WRITE_BUILTIN( \
28712885
elem_t, vec_size, dimension, elem_t_mangled, write_mangled, elem_t_size) \
2872-
_CLC_DEF void MANGLE_FUNC_IMG_HANDLE_HELP( \
2886+
_CLC_DEF void MANGLE_FUNC_IMG_HANDLE_HELPER( \
28732887
23, __spirv_ImageArrayWrite, I, \
2874-
CONCAT_HELP(DVEC_SIZE_##dimension(, i, ), \
2875-
DVEC_SIZE_##vec_size(, elem_t_mangled, EvT_T0_iT1_)))( \
2888+
CONCAT(DVEC_SIZE_##dimension(, i, ), \
2889+
DVEC_SIZE_##vec_size(, elem_t_mangled, EvT_T0_iT1_)))( \
28762890
ulong imageHandle, COORD_INPUT_##dimension##D(int), int idx, \
28772891
ELEM_VEC_##vec_size(elem_t) c) { \
2878-
NVVM_FUNC_HELP(sust, dimension, \
2879-
VEC_SIZE_##vec_size(write_mangled, elem_t_size)) \
2892+
NVVM_FUNC(sust, dimension, \
2893+
VEC_SIZE_##vec_size(write_mangled, elem_t_size)) \
28802894
(imageHandle, idx, \
28812895
COORD_PARAMS_##dimension##D(ELEM_VEC_##vec_size(elem_t)), \
28822896
COLOR_PARAMS_##vec_size##_CHANNEL); \
@@ -2940,8 +2954,8 @@ _CLC_DEFINE_IMAGE_ARRAY_BINDLESS_BUILTIN_ALL(half, DF16_, f, 16)
29402954
#undef DVEC_SIZE_1
29412955
#undef DVEC_SIZE_2
29422956
#undef DVEC_SIZE_4
2957+
#undef _CONCAT
29432958
#undef CONCAT
2944-
#undef CONCAT_HELP
2959+
#undef _NVVM_FUNC
29452960
#undef NVVM_FUNC
2946-
#undef NVVM_FUNC_HELPER
2947-
#undef MANGLE_FUNC_IMG_HANDLE_HELP
2961+
#undef MANGLE_FUNC_IMG_HANDLE_HELPER

0 commit comments

Comments
 (0)