1/*========================== begin_copyright_notice ============================ 2 3Copyright (C) 2017-2021 Intel Corporation 4 5SPDX-License-Identifier: MIT 6 7============================= end_copyright_notice ===========================*/ 8 9#include "../include/BiF_Definitions.cl" 10#include "spirv.h" 11 12 13INLINE 14char OVERLOADABLE ctz( char x ) 15{ 16 return SPIRV_OCL_BUILTIN(ctz, _i8, )( x ); 17} 18 19INLINE 20char2 OVERLOADABLE ctz( char2 x ) 21{ 22 return SPIRV_OCL_BUILTIN(ctz, _v2i8, )( x ); 23} 24 25INLINE 26char3 OVERLOADABLE ctz( char3 x ) 27{ 28 return SPIRV_OCL_BUILTIN(ctz, _v3i8, )( x ); 29} 30 31INLINE 32char4 OVERLOADABLE ctz( char4 x ) 33{ 34 return SPIRV_OCL_BUILTIN(ctz, _v4i8, )( x ); 35} 36 37INLINE 38char8 OVERLOADABLE ctz( char8 x ) 39{ 40 return SPIRV_OCL_BUILTIN(ctz, _v8i8, )( x ); 41} 42 43INLINE 44char16 OVERLOADABLE ctz( char16 x ) 45{ 46 return SPIRV_OCL_BUILTIN(ctz, _v16i8, )( x ); 47} 48 49INLINE 50uchar2 OVERLOADABLE ctz( uchar2 x ) 51{ 52 return as_uchar2( SPIRV_OCL_BUILTIN(ctz, _v2i8, )( as_char2(x) ) ); 53} 54 55INLINE 56uchar3 OVERLOADABLE ctz( uchar3 x ) 57{ 58 return as_uchar3( SPIRV_OCL_BUILTIN(ctz, _v3i8, )( as_char3(x) ) ); 59} 60 61INLINE 62uchar4 OVERLOADABLE ctz( uchar4 x ) 63{ 64 return as_uchar4( SPIRV_OCL_BUILTIN(ctz, _v4i8, )( as_char4(x) ) ); 65} 66 67INLINE 68uchar8 OVERLOADABLE ctz( uchar8 x ) 69{ 70 return as_uchar8( SPIRV_OCL_BUILTIN(ctz, _v8i8, )( as_char8(x) ) ); 71} 72 73INLINE 74uchar16 OVERLOADABLE ctz( uchar16 x ) 75{ 76 return as_uchar16( SPIRV_OCL_BUILTIN(ctz, _v16i8, )( as_char16(x) ) ); 77} 78 79INLINE 80short OVERLOADABLE ctz( short x ) 81{ 82 return SPIRV_OCL_BUILTIN(ctz, _i16, )( x ); 83} 84 85INLINE 86short2 OVERLOADABLE ctz( short2 x ) 87{ 88 return SPIRV_OCL_BUILTIN(ctz, _v2i16, )( x ); 89} 90 91INLINE 92short3 OVERLOADABLE ctz( short3 x ) 93{ 94 return SPIRV_OCL_BUILTIN(ctz, _v3i16, )( x ); 95} 96 97INLINE 98short4 OVERLOADABLE ctz( short4 x ) 99{ 100 return SPIRV_OCL_BUILTIN(ctz, _v4i16, )( x ); 101} 102 103INLINE 104short8 OVERLOADABLE ctz( short8 x ) 105{ 106 return SPIRV_OCL_BUILTIN(ctz, _v8i16, )( x ); 107} 108 109INLINE 110short16 OVERLOADABLE ctz( short16 x ) 111{ 112 return SPIRV_OCL_BUILTIN(ctz, _v16i16, )( x ); 113} 114 115 116 117INLINE 118ushort2 OVERLOADABLE ctz( ushort2 x ) 119{ 120 return as_ushort2( SPIRV_OCL_BUILTIN(ctz, _v2i16, )( as_short2(x) ) ); 121} 122 123INLINE 124ushort3 OVERLOADABLE ctz( ushort3 x ) 125{ 126 return as_ushort3( SPIRV_OCL_BUILTIN(ctz, _v3i16, )( as_short3(x) ) ); 127} 128 129INLINE 130ushort4 OVERLOADABLE ctz( ushort4 x ) 131{ 132 return as_ushort4( SPIRV_OCL_BUILTIN(ctz, _v4i16, )( as_short4(x) ) ); 133} 134 135INLINE 136ushort8 OVERLOADABLE ctz( ushort8 x ) 137{ 138 return as_ushort8( SPIRV_OCL_BUILTIN(ctz, _v8i16, )( as_short8(x) ) ); 139} 140 141INLINE 142ushort16 OVERLOADABLE ctz( ushort16 x ) 143{ 144 return as_ushort16( SPIRV_OCL_BUILTIN(ctz, _v16i16, )( as_short16(x) ) ); 145} 146 147INLINE 148int OVERLOADABLE ctz( int x ) 149{ 150 return SPIRV_OCL_BUILTIN(ctz, _i32, )( x ); 151} 152 153INLINE 154int2 OVERLOADABLE ctz( int2 x ) 155{ 156 return SPIRV_OCL_BUILTIN(ctz, _v2i32, )( x ); 157} 158 159INLINE 160int3 OVERLOADABLE ctz( int3 x ) 161{ 162 return SPIRV_OCL_BUILTIN(ctz, _v3i32, )( x ); 163} 164 165INLINE 166int4 OVERLOADABLE ctz( int4 x ) 167{ 168 return SPIRV_OCL_BUILTIN(ctz, _v4i32, )( x ); 169} 170 171INLINE 172int8 OVERLOADABLE ctz( int8 x ) 173{ 174 return SPIRV_OCL_BUILTIN(ctz, _v8i32, )( x ); 175} 176 177INLINE 178int16 OVERLOADABLE ctz( int16 x ) 179{ 180 return SPIRV_OCL_BUILTIN(ctz, _v16i32, )( x ); 181} 182 183 184 185INLINE 186uint2 OVERLOADABLE ctz( uint2 x ) 187{ 188 return as_uint2( SPIRV_OCL_BUILTIN(ctz, _v2i32, )( as_int2(x) ) ); 189} 190 191INLINE 192uint3 OVERLOADABLE ctz( uint3 x ) 193{ 194 return as_uint3( SPIRV_OCL_BUILTIN(ctz, _v3i32, )( as_int3(x) ) ); 195} 196 197INLINE 198uint4 OVERLOADABLE ctz( uint4 x ) 199{ 200 return as_uint4( SPIRV_OCL_BUILTIN(ctz, _v4i32, )( as_int4(x) ) ); 201} 202 203INLINE 204uint8 OVERLOADABLE ctz( uint8 x ) 205{ 206 return as_uint8( SPIRV_OCL_BUILTIN(ctz, _v8i32, )( as_int8(x) ) ); 207} 208 209INLINE 210uint16 OVERLOADABLE ctz( uint16 x ) 211{ 212 return as_uint16( SPIRV_OCL_BUILTIN(ctz, _v16i32, )( as_int16(x) ) ); 213} 214 215INLINE 216long OVERLOADABLE ctz( long x ) 217{ 218 return SPIRV_OCL_BUILTIN(ctz, _i64, )( x ); 219} 220 221INLINE 222long2 OVERLOADABLE ctz( long2 x ) 223{ 224 return SPIRV_OCL_BUILTIN(ctz, _v2i64, )( x ); 225} 226 227INLINE 228long3 OVERLOADABLE ctz( long3 x ) 229{ 230 return SPIRV_OCL_BUILTIN(ctz, _v3i64, )( x ); 231} 232 233INLINE 234long4 OVERLOADABLE ctz( long4 x ) 235{ 236 return SPIRV_OCL_BUILTIN(ctz, _v4i64, )( x ); 237} 238 239INLINE 240long8 OVERLOADABLE ctz( long8 x ) 241{ 242 return SPIRV_OCL_BUILTIN(ctz, _v8i64, )( x ); 243} 244 245INLINE 246long16 OVERLOADABLE ctz( long16 x ) 247{ 248 return SPIRV_OCL_BUILTIN(ctz, _v16i64, )( x ); 249} 250 251INLINE 252ulong OVERLOADABLE ctz( ulong x ) 253{ 254 return as_ulong( SPIRV_OCL_BUILTIN(ctz, _i64, )( as_long(x) ) ); 255} 256 257INLINE 258ulong2 OVERLOADABLE ctz( ulong2 x ) 259{ 260 return as_ulong2( SPIRV_OCL_BUILTIN(ctz, _v2i64, )( as_long2(x) ) ); 261} 262 263INLINE 264ulong3 OVERLOADABLE ctz( ulong3 x ) 265{ 266 return as_ulong3( SPIRV_OCL_BUILTIN(ctz, _v3i64, )( as_long3(x) ) ); 267} 268 269INLINE 270ulong4 OVERLOADABLE ctz( ulong4 x ) 271{ 272 return as_ulong4( SPIRV_OCL_BUILTIN(ctz, _v4i64, )( as_long4(x) ) ); 273} 274 275INLINE 276ulong8 OVERLOADABLE ctz( ulong8 x ) 277{ 278 return as_ulong8( SPIRV_OCL_BUILTIN(ctz, _v8i64, )( as_long8(x) ) ); 279} 280 281INLINE 282ulong16 OVERLOADABLE ctz( ulong16 x ) 283{ 284 return as_ulong16( SPIRV_OCL_BUILTIN(ctz, _v16i64, )( as_long16(x) ) ); 285} 286 287