Compute Library
 23.11
helpers.h File Reference

Go to the source code of this file.

Data Structures

struct  Vector
 Structure to hold Vector information. More...
 
struct  Image
 Structure to hold Image information. More...
 
struct  Tensor3D
 Structure to hold 3D tensor information. More...
 
struct  Tensor4D
 Structure to hold 4D tensor information. More...
 

Macros

#define GPU_ARCH_MIDGARD   0x100
 
#define GPU_ARCH_BIFROST   0x200
 
#define GPU_ARCH_VALHALL   0x300
 
#define CONCAT(a, b)   a##b
 Concatenate two inputs. More...
 
#define EXPAND(x)   x
 Expand the given vector. More...
 
#define CLAMP(x, min_val, max_val)   min(max(x, min_val), max_val)
 Clamp the given value between an upper and lower bound. More...
 
#define VLOAD_STR(size)   vload##size
 
#define VLOAD(size)   VLOAD_STR(size)
 
#define PIXEL_UNIT4   1
 
#define PIXEL_UNIT8   2
 
#define PIXEL_UNIT16   4
 
#define read_image2d_floatx1(img, x_coord, y_coord)   (float4)(read_imagef(img, (int2)(x_coord, y_coord)));
 
#define read_image2d_floatx2(img, x_coord, y_coord)   (float8)(read_imagef(img, (int2)(x_coord, y_coord)), read_imagef(img, (int2)(x_coord + 1, y_coord)));
 
#define read_image2d_floatx4(img, x_coord, y_coord)
 
#define write_image2d_floatx1(img, x_coord, y_coord, values)   (write_imagef(img, (int2)(x_coord, y_coord), values));
 
#define write_image2d_floatx2(img, x_coord, y_coord, values)
 
#define write_image2d_floatx4(img, x_coord, y_coord, values)
 
#define VSTORE_STR(size)   vstore##size
 
#define VSTORE(size)   VSTORE_STR(size)
 
#define float1   float
 
#define half1   half
 
#define char1   char
 
#define uchar1   uchar
 
#define short1   short
 
#define ushort1   ushort
 
#define int1   int
 
#define uint1   uint
 
#define long1   long
 
#define ulong1   ulong
 
#define double1   double
 
#define vload1(OFFSET, PTR)   *(OFFSET + PTR)
 
#define vstore1(DATA, OFFSET, PTR)   *(OFFSET + PTR) = DATA
 
#define convert_float_sat   convert_float
 
#define convert_float1_sat   convert_float
 
#define convert_float2_sat   convert_float2
 
#define convert_float3_sat   convert_float3
 
#define convert_float4_sat   convert_float4
 
#define convert_float8_sat   convert_float8
 
#define convert_float16_sat   convert_float16
 
#define convert_half_sat   convert_float
 
#define convert_half1_sat   convert_half
 
#define convert_half2_sat   convert_half2
 
#define convert_half3_sat   convert_half3
 
#define convert_half4_sat   convert_half4
 
#define convert_half8_sat   convert_half8
 
#define convert_half16_sat   convert_half16
 
#define convert_float1   convert_float
 
#define convert_half1   convert_half
 
#define convert_char1   convert_char
 
#define convert_uchar1   convert_uchar
 
#define convert_short1   convert_short
 
#define convert_ushort1   convert_ushort
 
#define convert_int1   convert_int
 
#define convert_uint1   convert_uint
 
#define convert_long1   convert_long
 
#define convert_ulong1   convert_ulong
 
#define convert_double1   convert_double
 
#define convert_char1_sat   convert_char_sat
 
#define convert_uchar1_sat   convert_uchar_sat
 
#define convert_uchar2_sat   convert_uchar2_sat
 
#define convert_uchar3_sat   convert_uchar3_sat
 
#define convert_uchar4_sat   convert_uchar4_sat
 
#define convert_uchar8_sat   convert_uchar8_sat
 
#define convert_uchar16_sat   convert_uchar16_sat
 
#define convert_short1_sat   convert_short_sat
 
#define convert_ushort1_sat   convert_ushort_sat
 
#define convert_int1_sat   convert_int_sat
 
#define convert_uint1_sat   convert_uint_sat
 
#define convert_long1_sat   convert_long_sat
 
#define convert_ulong1_sat   convert_ulong_sat
 
#define convert_double1_sat   convert_double_sat
 
#define VEC_DATA_TYPE_STR(type, size)   type##size
 
#define VEC_DATA_TYPE(type, size)   VEC_DATA_TYPE_STR(type, size)
 
#define CONVERT_STR(x, type)   (convert_##type((x)))
 
#define CONVERT(x, type)   CONVERT_STR(x, type)
 
#define CONVERT_SAT_STR(x, type)   (convert_##type##_sat((x)))
 
#define CONVERT_SAT(x, type)   CONVERT_SAT_STR(x, type)
 
#define CONVERT_SAT_ROUND_STR(x, type, round)   (convert_##type##_sat_##round((x)))
 
#define CONVERT_SAT_ROUND(x, type, round)   CONVERT_SAT_ROUND_STR(x, type, round)
 
#define select_vec_dt_uchar(size)   uchar##size
 
#define select_vec_dt_char(size)   char##size
 
#define select_vec_dt_ushort(size)   ushort##size
 
#define select_vec_dt_short(size)   short##size
 
#define select_vec_dt_half(size)   short##size
 
#define select_vec_dt_uint(size)   uint##size
 
#define select_vec_dt_int(size)   int##size
 
#define select_vec_dt_float(size)   int##size
 
#define select_vec_dt_ulong(size)   ulong##size
 
#define select_vec_dt_long(size)   long##size
 
#define SELECT_VEC_DATA_TYPE_STR(type, size)   select_vec_dt_##type(size)
 
#define SELECT_VEC_DATA_TYPE(type, size)   SELECT_VEC_DATA_TYPE_STR(type, size)
 
#define SELECT_DATA_TYPE(type)   SELECT_VEC_DATA_TYPE_STR(type, 1)
 
#define signed_int_vec_dt_uchar(size)   char##size
 
#define signed_int_vec_dt_char(size)   char##size
 
#define signed_int_vec_dt_ushort(size)   short##size
 
#define signed_int_vec_dt_short(size)   short##size
 
#define signed_int_vec_dt_half(size)   short##size
 
#define signed_int_vec_dt_uint(size)   int##size
 
#define signed_int_vec_dt_int(size)   int##size
 
#define signed_int_vec_dt_float(size)   int##size
 
#define signed_int_vec_dt_ulong(size)   long##size
 
#define signed_int_vec_dt_long(size)   long##size
 
#define SIGNED_INT_VEC_DATA_TYPE_STR(type, size)   signed_int_vec_dt_##type(size)
 
#define SIGNED_INT_VEC_DATA_TYPE(type, size)   SIGNED_INT_VEC_DATA_TYPE_STR(type, size)
 
#define SIGNED_INT_DATA_TYPE(type)   SIGNED_INT_VEC_DATA_TYPE_STR(type, 1)
 
#define sum_reduce_1(x)   (x)
 
#define sum_reduce_2(x)   ((x).s0) + ((x).s1)
 
#define sum_reduce_3(x)   sum_reduce_2((x).s01) + ((x).s2)
 
#define sum_reduce_4(x)   sum_reduce_2((x).s01) + sum_reduce_2((x).s23)
 
#define sum_reduce_8(x)   sum_reduce_4((x).s0123) + sum_reduce_4((x).s4567)
 
#define sum_reduce_16(x)   sum_reduce_8((x).s01234567) + sum_reduce_8((x).s89ABCDEF)
 
#define SUM_REDUCE_STR(x, size)   sum_reduce_##size(x)
 
#define SUM_REDUCE(x, size)   SUM_REDUCE_STR(x, size)
 
#define prod_reduce_1(x)   (x)
 
#define prod_reduce_2(x)   ((x).s0) * ((x).s1)
 
#define prod_reduce_3(x)   prod_reduce_2((x).s01) * ((x).s2)
 
#define prod_reduce_4(x)   prod_reduce_2((x).s01) * prod_reduce_2((x).s23)
 
#define prod_reduce_8(x)   prod_reduce_4((x).s0123) * prod_reduce_4((x).s4567)
 
#define prod_reduce_16(x)   prod_reduce_8((x).s01234567) * prod_reduce_8((x).s89ABCDEF)
 
#define PROD_REDUCE_STR(x, size)   prod_reduce_##size(x)
 
#define PROD_REDUCE(x, size)   PROD_REDUCE_STR(x, size)
 
#define max_reduce_1(x)   (x)
 
#define max_reduce_2(x)   max(((x).s0), ((x).s1))
 
#define max_reduce_3(x)   max(max_reduce_2((x).s01), ((x).s2))
 
#define max_reduce_4(x)   max(max_reduce_2((x).s01), max_reduce_2((x).s23))
 
#define max_reduce_8(x)   max(max_reduce_4((x).s0123), max_reduce_4((x).s4567))
 
#define max_reduce_16(x)   max(max_reduce_8((x).s01234567), max_reduce_8((x).s89ABCDEF))
 
#define MAX_REDUCE_STR(x, size)   max_reduce_##size(x)
 
#define MAX_REDUCE(x, size)   MAX_REDUCE_STR(x, size)
 
#define min_reduce_1(x)   (x)
 
#define min_reduce_2(x)   min(((x).s0), ((x).s1))
 
#define min_reduce_3(x)   min(min_reduce_2((x).s01), ((x).s2))
 
#define min_reduce_4(x)   min(min_reduce_2((x).s01), min_reduce_2((x).s23))
 
#define min_reduce_8(x)   min(min_reduce_4((x).s0123), min_reduce_4((x).s4567))
 
#define min_reduce_16(x)   min(min_reduce_8((x).s01234567), min_reduce_8((x).s89ABCDEF))
 
#define MIN_REDUCE_STR(x, size)   min_reduce_##size(x)
 
#define MIN_REDUCE(x, size)   MIN_REDUCE_STR(x, size)
 
#define VECTOR_DECLARATION(name)   __global uchar *name##_ptr, uint name##_stride_x, uint name##_step_x, uint name##_offset_first_element_in_bytes
 
#define IMAGE_DECLARATION(name)
 
#define TENSOR3D_DECLARATION(name)
 
#define TENSOR4D_DECLARATION(name)
 
#define TENSOR5D_DECLARATION(name)
 
#define CONVERT_TO_VECTOR_STRUCT(name)   update_vector_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, name##_step_x)
 
#define CONVERT_TO_VECTOR_STRUCT_NO_STEP(name)   update_vector_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, 0)
 
#define CONVERT_TO_IMAGE_STRUCT(name)
 
#define CONVERT_TO_IMAGE_STRUCT_NO_STEP(name)   update_image_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, 0, name##_stride_y, 0)
 
#define CONVERT_TENSOR3D_TO_IMAGE_STRUCT(name)
 
#define CONVERT_TENSOR3D_TO_IMAGE_STRUCT_NO_STEP(name)
 
#define CONVERT_TENSOR3D_TO_IMAGE_STRUCT(name)
 
#define CONVERT_TO_TENSOR3D_STRUCT(name)
 
#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP(name)
 
#define CONVERT_TO_TENSOR4D_STRUCT(name, mod_size)
 
#define CONVERT_TO_TENSOR4D_STRUCT_NO_STEP(name, mod_size)
 
#define CONVERT_TO_TENSOR3D_STRUCT_NO_UPDATE_PTR(name)
 
REVn

REVn reverses the given vector whose size is n.

Parameters
[in]xThe vector to be reversed
Returns
The reversed vector
#define REV1(x)   ((x))
 
#define REV2(x)   ((x).s10)
 
#define REV3(x)   ((x).s210)
 
#define REV4(x)   ((x).s3210)
 
#define REV8(x)   ((x).s76543210)
 
#define REV16(x)   ((x).sFEDCBA9876543210)
 
REVERSE

Reverse the given vector.

Parameters
[in]xThe vector to be reversed
[in]sThe size of the vector
Returns
The reversed vector
#define REVERSE_STR(x, s)   REV##s((x))
 
#define REVERSE(x, s)   REVERSE_STR(x, s)
 
ROTs_n

Circular-right-shift (rotate-right) the vector of size s by the amount of n.

Parameters
[in]xThe vector to be shifted
Returns
The shifted vector
#define ROT1_0(x)   ((x))
 
#define ROT1_1(x)   ((x))
 
#define ROT2_0(x)   ((x))
 
#define ROT2_1(x)   ((x).s10)
 
#define ROT2_2(x)   ((x))
 
#define ROT3_0(x)   ((x))
 
#define ROT3_1(x)   ((x).s201)
 
#define ROT3_2(x)   ((x).s120)
 
#define ROT3_3(x)   ((x))
 
#define ROT4_0(x)   ((x))
 
#define ROT4_1(x)   ((x).s3012)
 
#define ROT4_2(x)   ((x).s2301)
 
#define ROT4_3(x)   ((x).s1230)
 
#define ROT4_4(x)   ((x))
 
#define ROT8_0(x)   ((x))
 
#define ROT8_1(x)   ((x).s70123456)
 
#define ROT8_2(x)   ((x).s67012345)
 
#define ROT8_3(x)   ((x).s56701234)
 
#define ROT8_4(x)   ((x).s45670123)
 
#define ROT8_5(x)   ((x).s34567012)
 
#define ROT8_6(x)   ((x).s23456701)
 
#define ROT8_7(x)   ((x).s12345670)
 
#define ROT8_8(x)   ((x))
 
#define ROT16_0(x)   ((x))
 
#define ROT16_1(x)   ((x).sF0123456789ABCDE)
 
#define ROT16_2(x)   ((x).sEF0123456789ABCD)
 
#define ROT16_3(x)   ((x).sDEF0123456789ABC)
 
#define ROT16_4(x)   ((x).sCDEF0123456789AB)
 
#define ROT16_5(x)   ((x).sBCDEF0123456789A)
 
#define ROT16_6(x)   ((x).sABCDEF0123456789)
 
#define ROT16_7(x)   ((x).s9ABCDEF012345678)
 
#define ROT16_8(x)   ((x).s89ABCDEF01234567)
 
#define ROT16_9(x)   ((x).s789ABCDEF0123456)
 
#define ROT16_10(x)   ((x).s6789ABCDEF012345)
 
#define ROT16_11(x)   ((x).s56789ABCDEF01234)
 
#define ROT16_12(x)   ((x).s456789ABCDEF0123)
 
#define ROT16_13(x)   ((x).s3456789ABCDEF012)
 
#define ROT16_14(x)   ((x).s23456789ABCDEF01)
 
#define ROT16_15(x)   ((x).s123456789ABCDEF0)
 
#define ROT16_16(x)   ((x))
 
ROTATE

Circular-right-shift (rotate-right) the given vector by the given amount.

Parameters
[in]xThe vector to be shifted
[in]sThe size of the vector
[in]nThe amount to be shifted
Returns
The shifted vector
#define ROTATE_STR(x, s, n)   ROT##s##_##n(x)
 
#define ROTATE(x, s, n)   ROTATE_STR(x, s, n)
 
V_OFFSn

Creates a vector of size n filled with offset values corresponding to the location of each element.

Parameters
[in]dtThe data type of the output vector
Returns
The vector filled with offset values
#define V_OFFS1(dt)   (dt##1)(0)
 
#define V_OFFS2(dt)   (dt##2)(0, 1)
 
#define V_OFFS3(dt)   (dt##3)(0, 1, 2)
 
#define V_OFFS4(dt)   (dt##4)(0, 1, 2, 3)
 
#define V_OFFS8(dt)   (dt##8)(0, 1, 2, 3, 4, 5, 6, 7)
 
#define V_OFFS16(dt)   (dt##16)(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
 
VEC_OFFS

Create a vector filled with offset values corresponding to the location of each element.

Parameters
[in]dtThe data type of the output vector
[in]sThe size of the output vector
Returns
The vector filled with offset values
#define VEC_OFFS_STR(dt, s)   V_OFFS##s(dt)
 
#define VEC_OFFS(dt, s)   VEC_OFFS_STR(dt, s)
 
VLOAD_PARTIAL

Extended partial vload that correctly handles scalar values as well.

Load the lower 0 to (n-1)th elements of the given vector while minimising the amount of load ops

Note
With this macro, the passed data can be both a vector and a scalar
load_size needs to be <= size eg 1: Valid VLOAD_PARTIAL(16, 15) ...; eg 2: Invalid VLOAD_PARTIAL(4, 7) ...;
Parameters
[in]sizeThe width of DATA. Supported values: 1(scalar), 2, 3, 4, 8, 16
[in]load_sizeThe number of lower elements to load. Supported values: 1-16, but has to be <= size
#define VLOAD_PARTIAL_STR(size, load_size)   vload_partial_##size##_##load_size
 
#define VLOAD_PARTIAL(size, load_size)   VLOAD_PARTIAL_STR(size, load_size)
 
#define NO_LOAD(data, offs, ptr)
 
#define vload_partial_1_0   NO_LOAD
 
#define vload_partial_1_1   vload1
 
#define vload_partial_1_2   NO_LOAD
 
#define vload_partial_1_3   NO_LOAD
 
#define vload_partial_1_4   NO_LOAD
 
#define vload_partial_1_5   NO_LOAD
 
#define vload_partial_1_6   NO_LOAD
 
#define vload_partial_1_7   NO_LOAD
 
#define vload_partial_1_8   NO_LOAD
 
#define vload_partial_1_9   NO_LOAD
 
#define vload_partial_1_10   NO_LOAD
 
#define vload_partial_1_11   NO_LOAD
 
#define vload_partial_1_12   NO_LOAD
 
#define vload_partial_1_13   NO_LOAD
 
#define vload_partial_1_14   NO_LOAD
 
#define vload_partial_1_15   NO_LOAD
 
#define vload_partial_1_16   NO_LOAD
 
#define vload_partial_2_0   NO_LOAD
 
#define vload_partial_2_1   vload_partial_1
 
#define vload_partial_2_2   vload_partial_2
 
#define vload_partial_2_3   NO_LOAD
 
#define vload_partial_2_4   NO_LOAD
 
#define vload_partial_2_5   NO_LOAD
 
#define vload_partial_2_6   NO_LOAD
 
#define vload_partial_2_7   NO_LOAD
 
#define vload_partial_2_8   NO_LOAD
 
#define vload_partial_2_9   NO_LOAD
 
#define vload_partial_2_10   NO_LOAD
 
#define vload_partial_2_11   NO_LOAD
 
#define vload_partial_2_12   NO_LOAD
 
#define vload_partial_2_13   NO_LOAD
 
#define vload_partial_2_14   NO_LOAD
 
#define vload_partial_2_15   NO_LOAD
 
#define vload_partial_2_16   NO_LOAD
 
#define vload_partial_3_0   NO_LOAD
 
#define vload_partial_3_1   vload_partial_1
 
#define vload_partial_3_2   vload_partial_2
 
#define vload_partial_3_3   vload_partial_3
 
#define vload_partial_3_4   NO_LOAD
 
#define vload_partial_3_5   NO_LOAD
 
#define vload_partial_3_6   NO_LOAD
 
#define vload_partial_3_7   NO_LOAD
 
#define vload_partial_3_8   NO_LOAD
 
#define vload_partial_3_9   NO_LOAD
 
#define vload_partial_3_10   NO_LOAD
 
#define vload_partial_3_11   NO_LOAD
 
#define vload_partial_3_12   NO_LOAD
 
#define vload_partial_3_13   NO_LOAD
 
#define vload_partial_3_14   NO_LOAD
 
#define vload_partial_3_15   NO_LOAD
 
#define vload_partial_3_16   NO_LOAD
 
#define vload_partial_4_0   NO_LOAD
 
#define vload_partial_4_1   vload_partial_1
 
#define vload_partial_4_2   vload_partial_2
 
#define vload_partial_4_3   vload_partial_3
 
#define vload_partial_4_4   vload_partial_4
 
#define vload_partial_4_5   NO_LOAD
 
#define vload_partial_4_6   NO_LOAD
 
#define vload_partial_4_7   NO_LOAD
 
#define vload_partial_4_8   NO_LOAD
 
#define vload_partial_4_9   NO_LOAD
 
#define vload_partial_4_10   NO_LOAD
 
#define vload_partial_4_11   NO_LOAD
 
#define vload_partial_4_12   NO_LOAD
 
#define vload_partial_4_13   NO_LOAD
 
#define vload_partial_4_14   NO_LOAD
 
#define vload_partial_4_15   NO_LOAD
 
#define vload_partial_4_16   NO_LOAD
 
#define vload_partial_8_0   NO_LOAD
 
#define vload_partial_8_1   vload_partial_1
 
#define vload_partial_8_2   vload_partial_2
 
#define vload_partial_8_3   vload_partial_3
 
#define vload_partial_8_4   vload_partial_4
 
#define vload_partial_8_5   vload_partial_5
 
#define vload_partial_8_6   vload_partial_6
 
#define vload_partial_8_7   vload_partial_7
 
#define vload_partial_8_8   vload_partial_8
 
#define vload_partial_8_9   NO_LOAD
 
#define vload_partial_8_10   NO_LOAD
 
#define vload_partial_8_11   NO_LOAD
 
#define vload_partial_8_12   NO_LOAD
 
#define vload_partial_8_13   NO_LOAD
 
#define vload_partial_8_14   NO_LOAD
 
#define vload_partial_8_15   NO_LOAD
 
#define vload_partial_8_16   NO_LOAD
 
#define vload_partial_16_0   NO_LOAD
 
#define vload_partial_16_1   vload_partial_1
 
#define vload_partial_16_2   vload_partial_2
 
#define vload_partial_16_3   vload_partial_3
 
#define vload_partial_16_4   vload_partial_4
 
#define vload_partial_16_5   vload_partial_5
 
#define vload_partial_16_6   vload_partial_6
 
#define vload_partial_16_7   vload_partial_7
 
#define vload_partial_16_8   vload_partial_8
 
#define vload_partial_16_9   vload_partial_9
 
#define vload_partial_16_10   vload_partial_10
 
#define vload_partial_16_11   vload_partial_11
 
#define vload_partial_16_12   vload_partial_12
 
#define vload_partial_16_13   vload_partial_13
 
#define vload_partial_16_14   vload_partial_14
 
#define vload_partial_16_15   vload_partial_15
 
#define vload_partial_16_16   vload_partial_16
 
vload_partial_n

Partial vload.

Load the lower 0 to (n-1)th elements of the given vector while minimising the amount of vload ops

Note
DATA needs to be a vector not a scalar
n needs to be <= the vector width of the input variable DATA eg 1: Valid vload_partial_15(var:float16, 0, 0xabcd); eg 2: Invalid vload_partial_7(var:float4, 0, 0xabcd);
in cases n == 1, 2, 3, 4, 8, 16, no extra vload is invoked, thus there's no performance penalty.
Parameters
[in]DATAThe name of the variable where to load the values
[in]OFFSETOffset in n
[in]PTRThe base pointer
#define vload_partial_1(DATA, OFFSET, PTR)   DATA.s0 = vload1(OFFSET, PTR);
 
#define vload_partial_2(DATA, OFFSET, PTR)   DATA.s01 = vload2(OFFSET, PTR);
 
#define vload_partial_3(DATA, OFFSET, PTR)   DATA.s012 = vload3(OFFSET, PTR);
 
#define vload_partial_4(DATA, OFFSET, PTR)   DATA.s0123 = vload4(OFFSET, PTR);
 
#define vload_partial_5(DATA, OFFSET, PTR)
 
#define vload_partial_6(DATA, OFFSET, PTR)
 
#define vload_partial_7(DATA, OFFSET, PTR)
 
#define vload_partial_8(DATA, OFFSET, PTR)   DATA.s01234567 = vload8(OFFSET, PTR);
 
#define vload_partial_9(DATA, OFFSET, PTR)
 
#define vload_partial_10(DATA, OFFSET, PTR)
 
#define vload_partial_11(DATA, OFFSET, PTR)
 
#define vload_partial_12(DATA, OFFSET, PTR)
 
#define vload_partial_13(DATA, OFFSET, PTR)
 
#define vload_partial_14(DATA, OFFSET, PTR)
 
#define vload_partial_15(DATA, OFFSET, PTR)
 
#define vload_partial_16(DATA, OFFSET, PTR)   DATA = vload16(OFFSET, PTR);
 
CONVERT_VECTOR_SIZE_TO_PIXEL_UNIT

Utility macro to convert a vector size in pixel unit.

Parameters
[in]vec_sizeVector size. Only 4,8 and 16 is supported
Returns
The pixel unit (number of pixels)
#define CONVERT_VECTOR_SIZE_TO_PIXEL_UNIT_STR(vec_size)   PIXEL_UNIT##vec_size
 
#define CONVERT_VECTOR_SIZE_TO_PIXEL_UNIT(vec_size)   CONVERT_VECTOR_SIZE_TO_PIXEL_UNIT_STR(vec_size)
 
#define READ_IMAGE2D_STR(data_type, n0, img, x_coord, y_coord)   read_image2d_##data_type##x##n0(img, x_coord, y_coord)
 Utility macro to read a 2D OpenCL image object. More...
 
#define READ_IMAGE2D(data_type, n0, img, x_coord, y_coord)   READ_IMAGE2D_STR(data_type, n0, img, x_coord, y_coord)
 
#define WRITE_IMAGE2D_STR(data_type, n0, img, x_coord, y_coord, values)   write_image2d_##data_type##x##n0(img, x_coord, y_coord, values)
 Utility macro to write a 2D OpenCL image object. More...
 
#define WRITE_IMAGE2D(data_type, n0, img, x_coord, y_coord, values)   WRITE_IMAGE2D_STR(data_type, n0, img, x_coord, y_coord, values)
 
VSTORE_PARTIAL

Extended partial vstore that correctly handles scalar values as well.

Store the lower 0 to (n-1)th elements of the given vector while minimising the amount of vstore ops

Note
With this macro, the passed data can be both a vector and a scalar
store_size needs to be <= size eg 1: Valid VSTORE_PARTIAL(16, 15) ...; eg 2: Invalid VSTORE_PARTIAL(4, 7) ...;
Parameters
[in]sizeThe width of DATA. Supported values: 1(scalar), 2, 3, 4, 8, 16
[in]store_sizeThe number of lower elements to store. Supported values: 1-16, but has to be <= size
#define VSTORE_PARTIAL_STR(size, store_size)   vstore_partial_##size##_##store_size
 
#define VSTORE_PARTIAL(size, store_size)   VSTORE_PARTIAL_STR(size, store_size)
 
#define NO_STORE(data, offs, ptr)
 
#define vstore_partial_1_0   NO_STORE
 
#define vstore_partial_1_1   vstore1
 
#define vstore_partial_1_2   NO_STORE
 
#define vstore_partial_1_3   NO_STORE
 
#define vstore_partial_1_4   NO_STORE
 
#define vstore_partial_1_5   NO_STORE
 
#define vstore_partial_1_6   NO_STORE
 
#define vstore_partial_1_7   NO_STORE
 
#define vstore_partial_1_8   NO_STORE
 
#define vstore_partial_1_9   NO_STORE
 
#define vstore_partial_1_10   NO_STORE
 
#define vstore_partial_1_11   NO_STORE
 
#define vstore_partial_1_12   NO_STORE
 
#define vstore_partial_1_13   NO_STORE
 
#define vstore_partial_1_14   NO_STORE
 
#define vstore_partial_1_15   NO_STORE
 
#define vstore_partial_1_16   NO_STORE
 
#define vstore_partial_2_0   NO_STORE
 
#define vstore_partial_2_1   vstore_partial_1
 
#define vstore_partial_2_2   vstore_partial_2
 
#define vstore_partial_2_3   NO_STORE
 
#define vstore_partial_2_4   NO_STORE
 
#define vstore_partial_2_5   NO_STORE
 
#define vstore_partial_2_6   NO_STORE
 
#define vstore_partial_2_7   NO_STORE
 
#define vstore_partial_2_8   NO_STORE
 
#define vstore_partial_2_9   NO_STORE
 
#define vstore_partial_2_10   NO_STORE
 
#define vstore_partial_2_11   NO_STORE
 
#define vstore_partial_2_12   NO_STORE
 
#define vstore_partial_2_13   NO_STORE
 
#define vstore_partial_2_14   NO_STORE
 
#define vstore_partial_2_15   NO_STORE
 
#define vstore_partial_2_16   NO_STORE
 
#define vstore_partial_3_0   NO_STORE
 
#define vstore_partial_3_1   vstore_partial_1
 
#define vstore_partial_3_2   vstore_partial_2
 
#define vstore_partial_3_3   vstore_partial_3
 
#define vstore_partial_3_4   NO_STORE
 
#define vstore_partial_3_5   NO_STORE
 
#define vstore_partial_3_6   NO_STORE
 
#define vstore_partial_3_7   NO_STORE
 
#define vstore_partial_3_8   NO_STORE
 
#define vstore_partial_3_9   NO_STORE
 
#define vstore_partial_3_10   NO_STORE
 
#define vstore_partial_3_11   NO_STORE
 
#define vstore_partial_3_12   NO_STORE
 
#define vstore_partial_3_13   NO_STORE
 
#define vstore_partial_3_14   NO_STORE
 
#define vstore_partial_3_15   NO_STORE
 
#define vstore_partial_3_16   NO_STORE
 
#define vstore_partial_4_0   NO_STORE
 
#define vstore_partial_4_1   vstore_partial_1
 
#define vstore_partial_4_2   vstore_partial_2
 
#define vstore_partial_4_3   vstore_partial_3
 
#define vstore_partial_4_4   vstore_partial_4
 
#define vstore_partial_4_5   NO_STORE
 
#define vstore_partial_4_6   NO_STORE
 
#define vstore_partial_4_7   NO_STORE
 
#define vstore_partial_4_8   NO_STORE
 
#define vstore_partial_4_9   NO_STORE
 
#define vstore_partial_4_10   NO_STORE
 
#define vstore_partial_4_11   NO_STORE
 
#define vstore_partial_4_12   NO_STORE
 
#define vstore_partial_4_13   NO_STORE
 
#define vstore_partial_4_14   NO_STORE
 
#define vstore_partial_4_15   NO_STORE
 
#define vstore_partial_4_16   NO_STORE
 
#define vstore_partial_8_0   NO_STORE
 
#define vstore_partial_8_1   vstore_partial_1
 
#define vstore_partial_8_2   vstore_partial_2
 
#define vstore_partial_8_3   vstore_partial_3
 
#define vstore_partial_8_4   vstore_partial_4
 
#define vstore_partial_8_5   vstore_partial_5
 
#define vstore_partial_8_6   vstore_partial_6
 
#define vstore_partial_8_7   vstore_partial_7
 
#define vstore_partial_8_8   vstore_partial_8
 
#define vstore_partial_8_9   NO_STORE
 
#define vstore_partial_8_10   NO_STORE
 
#define vstore_partial_8_11   NO_STORE
 
#define vstore_partial_8_12   NO_STORE
 
#define vstore_partial_8_13   NO_STORE
 
#define vstore_partial_8_14   NO_STORE
 
#define vstore_partial_8_15   NO_STORE
 
#define vstore_partial_8_16   NO_STORE
 
#define vstore_partial_16_0   NO_STORE
 
#define vstore_partial_16_1   vstore_partial_1
 
#define vstore_partial_16_2   vstore_partial_2
 
#define vstore_partial_16_3   vstore_partial_3
 
#define vstore_partial_16_4   vstore_partial_4
 
#define vstore_partial_16_5   vstore_partial_5
 
#define vstore_partial_16_6   vstore_partial_6
 
#define vstore_partial_16_7   vstore_partial_7
 
#define vstore_partial_16_8   vstore_partial_8
 
#define vstore_partial_16_9   vstore_partial_9
 
#define vstore_partial_16_10   vstore_partial_10
 
#define vstore_partial_16_11   vstore_partial_11
 
#define vstore_partial_16_12   vstore_partial_12
 
#define vstore_partial_16_13   vstore_partial_13
 
#define vstore_partial_16_14   vstore_partial_14
 
#define vstore_partial_16_15   vstore_partial_15
 
#define vstore_partial_16_16   vstore_partial_16
 
vstore_partial_n

Partial vstore.

Store the lower 0 to (n-1)th elements of the given vector while minimising the amount of vstore ops

Note
DATA needs to be a vector not a scalar
n needs to be <= the vector width of the input variable DATA eg 1: Valid vstore_partial_15(var:float16, 0, 0xabcd); eg 2: Invalid vstore_partial_7(var:float4, 0, 0xabcd);
in cases n == 1, 2, 3, 4, 8, 16, no extra vstore is invoked, thus there's no performance penalty.
Parameters
[in]DATAThe name of the variable
[in]OFFSETOffset in n
[in]PTRThe base pointer
#define vstore_partial_1(DATA, OFFSET, PTR)   vstore1(DATA.s0, OFFSET, PTR);
 
#define vstore_partial_2(DATA, OFFSET, PTR)   vstore2(DATA.s01, OFFSET, PTR);
 
#define vstore_partial_3(DATA, OFFSET, PTR)   vstore3(DATA.s012, OFFSET, PTR);
 
#define vstore_partial_4(DATA, OFFSET, PTR)   vstore4(DATA.s0123, OFFSET, PTR);
 
#define vstore_partial_5(DATA, OFFSET, PTR)
 
#define vstore_partial_6(DATA, OFFSET, PTR)
 
#define vstore_partial_7(DATA, OFFSET, PTR)
 
#define vstore_partial_8(DATA, OFFSET, PTR)   vstore8(DATA.s01234567, OFFSET, PTR);
 
#define vstore_partial_9(DATA, OFFSET, PTR)
 
#define vstore_partial_10(DATA, OFFSET, PTR)
 
#define vstore_partial_11(DATA, OFFSET, PTR)
 
#define vstore_partial_12(DATA, OFFSET, PTR)
 
#define vstore_partial_13(DATA, OFFSET, PTR)
 
#define vstore_partial_14(DATA, OFFSET, PTR)
 
#define vstore_partial_15(DATA, OFFSET, PTR)
 
#define vstore_partial_16(DATA, OFFSET, PTR)   vstore16(DATA, OFFSET, PTR);
 

Typedefs

typedef struct Vector Vector
 Structure to hold Vector information. More...
 
typedef struct Image Image
 Structure to hold Image information. More...
 
typedef struct Tensor3D Tensor3D
 Structure to hold 3D tensor information. More...
 
typedef struct Tensor4D Tensor4D
 Structure to hold 4D tensor information. More...
 

Functions

Vector update_vector_workitem_ptr (__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x)
 Wrap vector information into an Vector structure, and make the pointer point at this workitem's data. More...
 
Image update_image_workitem_ptr (__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x, uint stride_y, uint step_y)
 Wrap image information into an Image structure, and make the pointer point at this workitem's data. More...
 
Image update_image_from_tensor3D_workitem_ptr (__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x, uint stride_y, uint step_y, uint stride_z, uint step_z)
 Wrap 3D tensor information into an image structure, and make the pointer point at this workitem's data. More...
 
Tensor3D update_tensor3D_workitem_ptr (__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x, uint stride_y, uint step_y, uint stride_z, uint step_z)
 Wrap 3D tensor information into an tensor structure, and make the pointer point at this workitem's data. More...
 
Tensor3D tensor3D_ptr_no_update (__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x, uint stride_y, uint step_y, uint stride_z, uint step_z)
 Wrap 3D tensor information into an tensor structure. More...
 
Tensor4D update_tensor4D_workitem_ptr (__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x, uint stride_y, uint step_y, uint stride_z, uint step_z, uint stride_w, uint step_w, uint mod_size)
 
const __global uchar * vector_offset (const Vector *vec, int x)
 Get the pointer position of a Vector. More...
 
__global uchar * offset (const Image *img, int x, int y)
 Get the pointer position of a Image. More...
 
const __global uchar * tensor3D_offset (const Tensor3D *tensor, int x, int y, int z)
 Get the pointer position of a Tensor3D. More...
 
const __global uchar * tensor4D_offset (const Tensor4D *tensor, int x, int y, int z, int w)
 Get the pointer position of a Tensor4D. More...
 
const __global uchar * tensor3D_index2ptr (const Tensor3D *tensor, uint width, uint height, uint depth, uint index)
 Get the offset for a given linear index of a Tensor3D. More...
 

Macro Definition Documentation

◆ char1

#define char1   char

Definition at line 504 of file helpers.h.

◆ CLAMP

#define CLAMP (   x,
  min_val,
  max_val 
)    min(max(x, min_val), max_val)

Clamp the given value between an upper and lower bound.

Parameters
[in]xThe value to be clamped
[in]min_valThe lower bound
[in]max_valThe upper bound
Returns
The clamped value.

Definition at line 74 of file helpers.h.

◆ CONCAT

#define CONCAT (   a,
 
)    a##b

Concatenate two inputs.

Parameters
[in]aThe first input to be concatenated
[in]bThe second input to be concatenated
Returns
The concatenated output

Definition at line 56 of file helpers.h.

◆ CONVERT

#define CONVERT (   x,
  type 
)    CONVERT_STR(x, type)

Definition at line 767 of file helpers.h.

◆ convert_char1

#define convert_char1   convert_char

Definition at line 738 of file helpers.h.

◆ convert_char1_sat

#define convert_char1_sat   convert_char_sat

Definition at line 748 of file helpers.h.

◆ convert_double1

#define convert_double1   convert_double

Definition at line 746 of file helpers.h.

◆ convert_double1_sat

#define convert_double1_sat   convert_double_sat

Definition at line 761 of file helpers.h.

◆ convert_float1

#define convert_float1   convert_float

Definition at line 736 of file helpers.h.

◆ convert_float16_sat

#define convert_float16_sat   convert_float16

Definition at line 727 of file helpers.h.

◆ convert_float1_sat

#define convert_float1_sat   convert_float

Definition at line 722 of file helpers.h.

◆ convert_float2_sat

#define convert_float2_sat   convert_float2

Definition at line 723 of file helpers.h.

◆ convert_float3_sat

#define convert_float3_sat   convert_float3

Definition at line 724 of file helpers.h.

◆ convert_float4_sat

#define convert_float4_sat   convert_float4

Definition at line 725 of file helpers.h.

◆ convert_float8_sat

#define convert_float8_sat   convert_float8

Definition at line 726 of file helpers.h.

◆ convert_float_sat

#define convert_float_sat   convert_float

Definition at line 721 of file helpers.h.

◆ convert_half1

#define convert_half1   convert_half

Definition at line 737 of file helpers.h.

◆ convert_half16_sat

#define convert_half16_sat   convert_half16

Definition at line 734 of file helpers.h.

◆ convert_half1_sat

#define convert_half1_sat   convert_half

Definition at line 729 of file helpers.h.

◆ convert_half2_sat

#define convert_half2_sat   convert_half2

Definition at line 730 of file helpers.h.

◆ convert_half3_sat

#define convert_half3_sat   convert_half3

Definition at line 731 of file helpers.h.

◆ convert_half4_sat

#define convert_half4_sat   convert_half4

Definition at line 732 of file helpers.h.

◆ convert_half8_sat

#define convert_half8_sat   convert_half8

Definition at line 733 of file helpers.h.

◆ convert_half_sat

#define convert_half_sat   convert_float

Definition at line 728 of file helpers.h.

◆ convert_int1

#define convert_int1   convert_int

Definition at line 742 of file helpers.h.

◆ convert_int1_sat

#define convert_int1_sat   convert_int_sat

Definition at line 757 of file helpers.h.

◆ convert_long1

#define convert_long1   convert_long

Definition at line 744 of file helpers.h.

◆ convert_long1_sat

#define convert_long1_sat   convert_long_sat

Definition at line 759 of file helpers.h.

◆ CONVERT_SAT

#define CONVERT_SAT (   x,
  type 
)    CONVERT_SAT_STR(x, type)

Definition at line 770 of file helpers.h.

◆ CONVERT_SAT_ROUND

#define CONVERT_SAT_ROUND (   x,
  type,
  round 
)    CONVERT_SAT_ROUND_STR(x, type, round)

Definition at line 773 of file helpers.h.

◆ CONVERT_SAT_ROUND_STR

#define CONVERT_SAT_ROUND_STR (   x,
  type,
  round 
)    (convert_##type##_sat_##round((x)))

Definition at line 772 of file helpers.h.

◆ CONVERT_SAT_STR

#define CONVERT_SAT_STR (   x,
  type 
)    (convert_##type##_sat((x)))

Definition at line 769 of file helpers.h.

◆ convert_short1

#define convert_short1   convert_short

Definition at line 740 of file helpers.h.

◆ convert_short1_sat

#define convert_short1_sat   convert_short_sat

Definition at line 755 of file helpers.h.

◆ CONVERT_STR

#define CONVERT_STR (   x,
  type 
)    (convert_##type((x)))

Definition at line 766 of file helpers.h.

◆ CONVERT_TENSOR3D_TO_IMAGE_STRUCT [1/2]

#define CONVERT_TENSOR3D_TO_IMAGE_STRUCT (   name)
Value:
update_image_from_tensor3D_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, \
name##_step_x, name##_stride_y, name##_step_y, name##_stride_z, \
name##_step_z)

Definition at line 888 of file helpers.h.

◆ CONVERT_TENSOR3D_TO_IMAGE_STRUCT [2/2]

#define CONVERT_TENSOR3D_TO_IMAGE_STRUCT (   name)
Value:
update_image_from_tensor3D_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, \
name##_step_x, name##_stride_y, name##_step_y, name##_stride_z, \
name##_step_z)

Definition at line 888 of file helpers.h.

◆ CONVERT_TENSOR3D_TO_IMAGE_STRUCT_NO_STEP

#define CONVERT_TENSOR3D_TO_IMAGE_STRUCT_NO_STEP (   name)
Value:
update_image_from_tensor3D_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, 0, \
name##_stride_y, 0, name##_stride_z, name##_step_z)

Definition at line 884 of file helpers.h.

◆ CONVERT_TO_IMAGE_STRUCT

#define CONVERT_TO_IMAGE_STRUCT (   name)
Value:
update_image_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, name##_step_x, \
name##_stride_y, name##_step_y)

Definition at line 872 of file helpers.h.

◆ CONVERT_TO_IMAGE_STRUCT_NO_STEP

#define CONVERT_TO_IMAGE_STRUCT_NO_STEP (   name)    update_image_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, 0, name##_stride_y, 0)

Definition at line 876 of file helpers.h.

◆ CONVERT_TO_TENSOR3D_STRUCT

#define CONVERT_TO_TENSOR3D_STRUCT (   name)
Value:
update_tensor3D_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, name##_step_x, \
name##_stride_y, name##_step_y, name##_stride_z, name##_step_z)

Definition at line 893 of file helpers.h.

◆ CONVERT_TO_TENSOR3D_STRUCT_NO_STEP

#define CONVERT_TO_TENSOR3D_STRUCT_NO_STEP (   name)
Value:
update_tensor3D_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, 0, \
name##_stride_y, 0, name##_stride_z, 0)

Definition at line 897 of file helpers.h.

◆ CONVERT_TO_TENSOR3D_STRUCT_NO_UPDATE_PTR

#define CONVERT_TO_TENSOR3D_STRUCT_NO_UPDATE_PTR (   name)
Value:
tensor3D_ptr_no_update(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, name##_step_x, \
name##_stride_y, name##_step_y, name##_stride_z, name##_step_z)

Definition at line 910 of file helpers.h.

◆ CONVERT_TO_TENSOR4D_STRUCT

#define CONVERT_TO_TENSOR4D_STRUCT (   name,
  mod_size 
)
Value:
update_tensor4D_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, name##_step_x, \
name##_stride_y, name##_step_y, name##_stride_z, name##_step_z, name##_stride_w, \
name##_step_w, mod_size)

Definition at line 901 of file helpers.h.

◆ CONVERT_TO_TENSOR4D_STRUCT_NO_STEP

#define CONVERT_TO_TENSOR4D_STRUCT_NO_STEP (   name,
  mod_size 
)
Value:
update_tensor4D_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, 0, \
name##_stride_y, 0, name##_stride_z, 0, name##_stride_w, 0, mod_size)

Definition at line 906 of file helpers.h.

◆ CONVERT_TO_VECTOR_STRUCT

#define CONVERT_TO_VECTOR_STRUCT (   name)    update_vector_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, name##_step_x)

Definition at line 866 of file helpers.h.

◆ CONVERT_TO_VECTOR_STRUCT_NO_STEP

#define CONVERT_TO_VECTOR_STRUCT_NO_STEP (   name)    update_vector_workitem_ptr(name##_ptr, name##_offset_first_element_in_bytes, name##_stride_x, 0)

Definition at line 869 of file helpers.h.

◆ convert_uchar1

#define convert_uchar1   convert_uchar

Definition at line 739 of file helpers.h.

◆ convert_uchar16_sat

#define convert_uchar16_sat   convert_uchar16_sat

Definition at line 754 of file helpers.h.

◆ convert_uchar1_sat

#define convert_uchar1_sat   convert_uchar_sat

Definition at line 749 of file helpers.h.

◆ convert_uchar2_sat

#define convert_uchar2_sat   convert_uchar2_sat

Definition at line 750 of file helpers.h.

◆ convert_uchar3_sat

#define convert_uchar3_sat   convert_uchar3_sat

Definition at line 751 of file helpers.h.

◆ convert_uchar4_sat

#define convert_uchar4_sat   convert_uchar4_sat

Definition at line 752 of file helpers.h.

◆ convert_uchar8_sat

#define convert_uchar8_sat   convert_uchar8_sat

Definition at line 753 of file helpers.h.

◆ convert_uint1

#define convert_uint1   convert_uint

Definition at line 743 of file helpers.h.

◆ convert_uint1_sat

#define convert_uint1_sat   convert_uint_sat

Definition at line 758 of file helpers.h.

◆ convert_ulong1

#define convert_ulong1   convert_ulong

Definition at line 745 of file helpers.h.

◆ convert_ulong1_sat

#define convert_ulong1_sat   convert_ulong_sat

Definition at line 760 of file helpers.h.

◆ convert_ushort1

#define convert_ushort1   convert_ushort

Definition at line 741 of file helpers.h.

◆ convert_ushort1_sat

#define convert_ushort1_sat   convert_ushort_sat

Definition at line 756 of file helpers.h.

◆ CONVERT_VECTOR_SIZE_TO_PIXEL_UNIT

#define CONVERT_VECTOR_SIZE_TO_PIXEL_UNIT (   vec_size)    CONVERT_VECTOR_SIZE_TO_PIXEL_UNIT_STR(vec_size)

Definition at line 422 of file helpers.h.

◆ CONVERT_VECTOR_SIZE_TO_PIXEL_UNIT_STR

#define CONVERT_VECTOR_SIZE_TO_PIXEL_UNIT_STR (   vec_size)    PIXEL_UNIT##vec_size

Definition at line 421 of file helpers.h.

◆ double1

#define double1   double

Definition at line 512 of file helpers.h.

◆ EXPAND

#define EXPAND (   x)    x

Expand the given vector.

Parameters
[in]xThe vector to be expanded
Returns
The expanded output

Definition at line 64 of file helpers.h.

◆ float1

#define float1   float

Definition at line 502 of file helpers.h.

◆ GPU_ARCH_BIFROST

#define GPU_ARCH_BIFROST   0x200

Definition at line 46 of file helpers.h.

◆ GPU_ARCH_MIDGARD

#define GPU_ARCH_MIDGARD   0x100

Definition at line 45 of file helpers.h.

◆ GPU_ARCH_VALHALL

#define GPU_ARCH_VALHALL   0x300

Definition at line 47 of file helpers.h.

◆ half1

#define half1   half

Definition at line 503 of file helpers.h.

◆ IMAGE_DECLARATION

#define IMAGE_DECLARATION (   name)
Value:
__global uchar *name##_ptr, uint name##_stride_x, uint name##_step_x, uint name##_stride_y, uint name##_step_y, \
uint name##_offset_first_element_in_bytes

Definition at line 848 of file helpers.h.

◆ int1

#define int1   int

Definition at line 508 of file helpers.h.

◆ long1

#define long1   long

Definition at line 510 of file helpers.h.

◆ MAX_REDUCE

#define MAX_REDUCE (   x,
  size 
)    MAX_REDUCE_STR(x, size)

Definition at line 833 of file helpers.h.

◆ max_reduce_1

#define max_reduce_1 (   x)    (x)

Definition at line 825 of file helpers.h.

◆ max_reduce_16

#define max_reduce_16 (   x)    max(max_reduce_8((x).s01234567), max_reduce_8((x).s89ABCDEF))

Definition at line 830 of file helpers.h.

◆ max_reduce_2

#define max_reduce_2 (   x)    max(((x).s0), ((x).s1))

Definition at line 826 of file helpers.h.

◆ max_reduce_3

#define max_reduce_3 (   x)    max(max_reduce_2((x).s01), ((x).s2))

Definition at line 827 of file helpers.h.

◆ max_reduce_4

#define max_reduce_4 (   x)    max(max_reduce_2((x).s01), max_reduce_2((x).s23))

Definition at line 828 of file helpers.h.

◆ max_reduce_8

#define max_reduce_8 (   x)    max(max_reduce_4((x).s0123), max_reduce_4((x).s4567))

Definition at line 829 of file helpers.h.

◆ MAX_REDUCE_STR

#define MAX_REDUCE_STR (   x,
  size 
)    max_reduce_##size(x)

Definition at line 832 of file helpers.h.

◆ MIN_REDUCE

#define MIN_REDUCE (   x,
  size 
)    MIN_REDUCE_STR(x, size)

Definition at line 843 of file helpers.h.

◆ min_reduce_1

#define min_reduce_1 (   x)    (x)

Definition at line 835 of file helpers.h.

◆ min_reduce_16

#define min_reduce_16 (   x)    min(min_reduce_8((x).s01234567), min_reduce_8((x).s89ABCDEF))

Definition at line 840 of file helpers.h.

◆ min_reduce_2

#define min_reduce_2 (   x)    min(((x).s0), ((x).s1))

Definition at line 836 of file helpers.h.

◆ min_reduce_3

#define min_reduce_3 (   x)    min(min_reduce_2((x).s01), ((x).s2))

Definition at line 837 of file helpers.h.

◆ min_reduce_4

#define min_reduce_4 (   x)    min(min_reduce_2((x).s01), min_reduce_2((x).s23))

Definition at line 838 of file helpers.h.

◆ min_reduce_8

#define min_reduce_8 (   x)    min(min_reduce_4((x).s0123), min_reduce_4((x).s4567))

Definition at line 839 of file helpers.h.

◆ MIN_REDUCE_STR

#define MIN_REDUCE_STR (   x,
  size 
)    min_reduce_##size(x)

Definition at line 842 of file helpers.h.

◆ NO_LOAD

#define NO_LOAD (   data,
  offs,
  ptr 
)
Value:
{ \
}

Definition at line 224 of file helpers.h.

◆ NO_STORE

#define NO_STORE (   data,
  offs,
  ptr 
)
Value:
{ \
}

Definition at line 535 of file helpers.h.

◆ PIXEL_UNIT16

#define PIXEL_UNIT16   4

Definition at line 410 of file helpers.h.

◆ PIXEL_UNIT4

#define PIXEL_UNIT4   1

Definition at line 408 of file helpers.h.

◆ PIXEL_UNIT8

#define PIXEL_UNIT8   2

Definition at line 409 of file helpers.h.

◆ PROD_REDUCE

#define PROD_REDUCE (   x,
  size 
)    PROD_REDUCE_STR(x, size)

Definition at line 823 of file helpers.h.

◆ prod_reduce_1

#define prod_reduce_1 (   x)    (x)

Definition at line 815 of file helpers.h.

◆ prod_reduce_16

#define prod_reduce_16 (   x)    prod_reduce_8((x).s01234567) * prod_reduce_8((x).s89ABCDEF)

Definition at line 820 of file helpers.h.

◆ prod_reduce_2

#define prod_reduce_2 (   x)    ((x).s0) * ((x).s1)

Definition at line 816 of file helpers.h.

◆ prod_reduce_3

#define prod_reduce_3 (   x)    prod_reduce_2((x).s01) * ((x).s2)

Definition at line 817 of file helpers.h.

◆ prod_reduce_4

#define prod_reduce_4 (   x)    prod_reduce_2((x).s01) * prod_reduce_2((x).s23)

Definition at line 818 of file helpers.h.

◆ prod_reduce_8

#define prod_reduce_8 (   x)    prod_reduce_4((x).s0123) * prod_reduce_4((x).s4567)

Definition at line 819 of file helpers.h.

◆ PROD_REDUCE_STR

#define PROD_REDUCE_STR (   x,
  size 
)    prod_reduce_##size(x)

Definition at line 822 of file helpers.h.

◆ READ_IMAGE2D

#define READ_IMAGE2D (   data_type,
  n0,
  img,
  x_coord,
  y_coord 
)    READ_IMAGE2D_STR(data_type, n0, img, x_coord, y_coord)

Definition at line 477 of file helpers.h.

◆ read_image2d_floatx1

#define read_image2d_floatx1 (   img,
  x_coord,
  y_coord 
)    (float4)(read_imagef(img, (int2)(x_coord, y_coord)));

Definition at line 425 of file helpers.h.

◆ read_image2d_floatx2

#define read_image2d_floatx2 (   img,
  x_coord,
  y_coord 
)    (float8)(read_imagef(img, (int2)(x_coord, y_coord)), read_imagef(img, (int2)(x_coord + 1, y_coord)));

Definition at line 426 of file helpers.h.

◆ read_image2d_floatx4

#define read_image2d_floatx4 (   img,
  x_coord,
  y_coord 
)
Value:
(float16)(read_imagef(img, (int2)(x_coord, y_coord)), read_imagef(img, (int2)(x_coord + 1, y_coord)), \
read_imagef(img, (int2)(x_coord + 2, y_coord)), read_imagef(img, (int2)(x_coord + 3, y_coord)));

Definition at line 428 of file helpers.h.

◆ READ_IMAGE2D_STR

#define READ_IMAGE2D_STR (   data_type,
  n0,
  img,
  x_coord,
  y_coord 
)    read_image2d_##data_type##x##n0(img, x_coord, y_coord)

Utility macro to read a 2D OpenCL image object.

Note
Coordinates are not normalized
Parameters
[in]data_typeData type
[in]n0Number of pixel to read. Only 1,2 and 4 is supported
[in]imgOpenCL image object
[in]x_coordThe x coordinate for the top-left pixel
[in]y_coordThe y coordinate for the top-left pixel
Returns
Pixels from the 2D OpenCL image object

Definition at line 476 of file helpers.h.

◆ REV1

#define REV1 (   x)    ((x))

Definition at line 84 of file helpers.h.

◆ REV16

#define REV16 (   x)    ((x).sFEDCBA9876543210)

Definition at line 89 of file helpers.h.

◆ REV2

#define REV2 (   x)    ((x).s10)

Definition at line 85 of file helpers.h.

◆ REV3

#define REV3 (   x)    ((x).s210)

Definition at line 86 of file helpers.h.

◆ REV4

#define REV4 (   x)    ((x).s3210)

Definition at line 87 of file helpers.h.

◆ REV8

#define REV8 (   x)    ((x).s76543210)

Definition at line 88 of file helpers.h.

◆ REVERSE

#define REVERSE (   x,
 
)    REVERSE_STR(x, s)

Definition at line 102 of file helpers.h.

◆ REVERSE_STR

#define REVERSE_STR (   x,
 
)    REV##s((x))

Definition at line 101 of file helpers.h.

◆ ROT16_0

#define ROT16_0 (   x)    ((x))

Definition at line 141 of file helpers.h.

◆ ROT16_1

#define ROT16_1 (   x)    ((x).sF0123456789ABCDE)

Definition at line 142 of file helpers.h.

◆ ROT16_10

#define ROT16_10 (   x)    ((x).s6789ABCDEF012345)

Definition at line 151 of file helpers.h.

◆ ROT16_11

#define ROT16_11 (   x)    ((x).s56789ABCDEF01234)

Definition at line 152 of file helpers.h.

◆ ROT16_12

#define ROT16_12 (   x)    ((x).s456789ABCDEF0123)

Definition at line 153 of file helpers.h.

◆ ROT16_13

#define ROT16_13 (   x)    ((x).s3456789ABCDEF012)

Definition at line 154 of file helpers.h.

◆ ROT16_14

#define ROT16_14 (   x)    ((x).s23456789ABCDEF01)

Definition at line 155 of file helpers.h.

◆ ROT16_15

#define ROT16_15 (   x)    ((x).s123456789ABCDEF0)

Definition at line 156 of file helpers.h.

◆ ROT16_16

#define ROT16_16 (   x)    ((x))

Definition at line 157 of file helpers.h.

◆ ROT16_2

#define ROT16_2 (   x)    ((x).sEF0123456789ABCD)

Definition at line 143 of file helpers.h.

◆ ROT16_3

#define ROT16_3 (   x)    ((x).sDEF0123456789ABC)

Definition at line 144 of file helpers.h.

◆ ROT16_4

#define ROT16_4 (   x)    ((x).sCDEF0123456789AB)

Definition at line 145 of file helpers.h.

◆ ROT16_5

#define ROT16_5 (   x)    ((x).sBCDEF0123456789A)

Definition at line 146 of file helpers.h.

◆ ROT16_6

#define ROT16_6 (   x)    ((x).sABCDEF0123456789)

Definition at line 147 of file helpers.h.

◆ ROT16_7

#define ROT16_7 (   x)    ((x).s9ABCDEF012345678)

Definition at line 148 of file helpers.h.

◆ ROT16_8

#define ROT16_8 (   x)    ((x).s89ABCDEF01234567)

Definition at line 149 of file helpers.h.

◆ ROT16_9

#define ROT16_9 (   x)    ((x).s789ABCDEF0123456)

Definition at line 150 of file helpers.h.

◆ ROT1_0

#define ROT1_0 (   x)    ((x))

Definition at line 113 of file helpers.h.

◆ ROT1_1

#define ROT1_1 (   x)    ((x))

Definition at line 114 of file helpers.h.

◆ ROT2_0

#define ROT2_0 (   x)    ((x))

Definition at line 116 of file helpers.h.

◆ ROT2_1

#define ROT2_1 (   x)    ((x).s10)

Definition at line 117 of file helpers.h.

◆ ROT2_2

#define ROT2_2 (   x)    ((x))

Definition at line 118 of file helpers.h.

◆ ROT3_0

#define ROT3_0 (   x)    ((x))

Definition at line 120 of file helpers.h.

◆ ROT3_1

#define ROT3_1 (   x)    ((x).s201)

Definition at line 121 of file helpers.h.

◆ ROT3_2

#define ROT3_2 (   x)    ((x).s120)

Definition at line 122 of file helpers.h.

◆ ROT3_3

#define ROT3_3 (   x)    ((x))

Definition at line 123 of file helpers.h.

◆ ROT4_0

#define ROT4_0 (   x)    ((x))

Definition at line 125 of file helpers.h.

◆ ROT4_1

#define ROT4_1 (   x)    ((x).s3012)

Definition at line 126 of file helpers.h.

◆ ROT4_2

#define ROT4_2 (   x)    ((x).s2301)

Definition at line 127 of file helpers.h.

◆ ROT4_3

#define ROT4_3 (   x)    ((x).s1230)

Definition at line 128 of file helpers.h.

◆ ROT4_4

#define ROT4_4 (   x)    ((x))

Definition at line 129 of file helpers.h.

◆ ROT8_0

#define ROT8_0 (   x)    ((x))

Definition at line 131 of file helpers.h.

◆ ROT8_1

#define ROT8_1 (   x)    ((x).s70123456)

Definition at line 132 of file helpers.h.

◆ ROT8_2

#define ROT8_2 (   x)    ((x).s67012345)

Definition at line 133 of file helpers.h.

◆ ROT8_3

#define ROT8_3 (   x)    ((x).s56701234)

Definition at line 134 of file helpers.h.

◆ ROT8_4

#define ROT8_4 (   x)    ((x).s45670123)

Definition at line 135 of file helpers.h.

◆ ROT8_5

#define ROT8_5 (   x)    ((x).s34567012)

Definition at line 136 of file helpers.h.

◆ ROT8_6

#define ROT8_6 (   x)    ((x).s23456701)

Definition at line 137 of file helpers.h.

◆ ROT8_7

#define ROT8_7 (   x)    ((x).s12345670)

Definition at line 138 of file helpers.h.

◆ ROT8_8

#define ROT8_8 (   x)    ((x))

Definition at line 139 of file helpers.h.

◆ ROTATE

#define ROTATE (   x,
  s,
 
)    ROTATE_STR(x, s, n)

Definition at line 171 of file helpers.h.

◆ ROTATE_STR

#define ROTATE_STR (   x,
  s,
 
)    ROT##s##_##n(x)

Definition at line 170 of file helpers.h.

◆ SELECT_DATA_TYPE

#define SELECT_DATA_TYPE (   type)    SELECT_VEC_DATA_TYPE_STR(type, 1)

Definition at line 788 of file helpers.h.

◆ SELECT_VEC_DATA_TYPE

#define SELECT_VEC_DATA_TYPE (   type,
  size 
)    SELECT_VEC_DATA_TYPE_STR(type, size)

Definition at line 787 of file helpers.h.

◆ SELECT_VEC_DATA_TYPE_STR

#define SELECT_VEC_DATA_TYPE_STR (   type,
  size 
)    select_vec_dt_##type(size)

Definition at line 786 of file helpers.h.

◆ select_vec_dt_char

#define select_vec_dt_char (   size)    char##size

Definition at line 776 of file helpers.h.

◆ select_vec_dt_float

#define select_vec_dt_float (   size)    int##size

Definition at line 782 of file helpers.h.

◆ select_vec_dt_half

#define select_vec_dt_half (   size)    short##size

Definition at line 779 of file helpers.h.

◆ select_vec_dt_int

#define select_vec_dt_int (   size)    int##size

Definition at line 781 of file helpers.h.

◆ select_vec_dt_long

#define select_vec_dt_long (   size)    long##size

Definition at line 784 of file helpers.h.

◆ select_vec_dt_short

#define select_vec_dt_short (   size)    short##size

Definition at line 778 of file helpers.h.

◆ select_vec_dt_uchar

#define select_vec_dt_uchar (   size)    uchar##size

Definition at line 775 of file helpers.h.

◆ select_vec_dt_uint

#define select_vec_dt_uint (   size)    uint##size

Definition at line 780 of file helpers.h.

◆ select_vec_dt_ulong

#define select_vec_dt_ulong (   size)    ulong##size

Definition at line 783 of file helpers.h.

◆ select_vec_dt_ushort

#define select_vec_dt_ushort (   size)    ushort##size

Definition at line 777 of file helpers.h.

◆ short1

#define short1   short

Definition at line 506 of file helpers.h.

◆ SIGNED_INT_DATA_TYPE

#define SIGNED_INT_DATA_TYPE (   type)    SIGNED_INT_VEC_DATA_TYPE_STR(type, 1)

Definition at line 803 of file helpers.h.

◆ SIGNED_INT_VEC_DATA_TYPE

#define SIGNED_INT_VEC_DATA_TYPE (   type,
  size 
)    SIGNED_INT_VEC_DATA_TYPE_STR(type, size)

Definition at line 802 of file helpers.h.

◆ SIGNED_INT_VEC_DATA_TYPE_STR

#define SIGNED_INT_VEC_DATA_TYPE_STR (   type,
  size 
)    signed_int_vec_dt_##type(size)

Definition at line 801 of file helpers.h.

◆ signed_int_vec_dt_char

#define signed_int_vec_dt_char (   size)    char##size

Definition at line 791 of file helpers.h.

◆ signed_int_vec_dt_float

#define signed_int_vec_dt_float (   size)    int##size

Definition at line 797 of file helpers.h.

◆ signed_int_vec_dt_half

#define signed_int_vec_dt_half (   size)    short##size

Definition at line 794 of file helpers.h.

◆ signed_int_vec_dt_int

#define signed_int_vec_dt_int (   size)    int##size

Definition at line 796 of file helpers.h.

◆ signed_int_vec_dt_long

#define signed_int_vec_dt_long (   size)    long##size

Definition at line 799 of file helpers.h.

◆ signed_int_vec_dt_short

#define signed_int_vec_dt_short (   size)    short##size

Definition at line 793 of file helpers.h.

◆ signed_int_vec_dt_uchar

#define signed_int_vec_dt_uchar (   size)    char##size

Definition at line 790 of file helpers.h.

◆ signed_int_vec_dt_uint

#define signed_int_vec_dt_uint (   size)    int##size

Definition at line 795 of file helpers.h.

◆ signed_int_vec_dt_ulong

#define signed_int_vec_dt_ulong (   size)    long##size

Definition at line 798 of file helpers.h.

◆ signed_int_vec_dt_ushort

#define signed_int_vec_dt_ushort (   size)    short##size

Definition at line 792 of file helpers.h.

◆ SUM_REDUCE

#define SUM_REDUCE (   x,
  size 
)    SUM_REDUCE_STR(x, size)

Definition at line 813 of file helpers.h.

◆ sum_reduce_1

#define sum_reduce_1 (   x)    (x)

Definition at line 805 of file helpers.h.

◆ sum_reduce_16

#define sum_reduce_16 (   x)    sum_reduce_8((x).s01234567) + sum_reduce_8((x).s89ABCDEF)

Definition at line 810 of file helpers.h.

◆ sum_reduce_2

#define sum_reduce_2 (   x)    ((x).s0) + ((x).s1)

Definition at line 806 of file helpers.h.

◆ sum_reduce_3

#define sum_reduce_3 (   x)    sum_reduce_2((x).s01) + ((x).s2)

Definition at line 807 of file helpers.h.

◆ sum_reduce_4

#define sum_reduce_4 (   x)    sum_reduce_2((x).s01) + sum_reduce_2((x).s23)

Definition at line 808 of file helpers.h.

◆ sum_reduce_8

#define sum_reduce_8 (   x)    sum_reduce_4((x).s0123) + sum_reduce_4((x).s4567)

Definition at line 809 of file helpers.h.

◆ SUM_REDUCE_STR

#define SUM_REDUCE_STR (   x,
  size 
)    sum_reduce_##size(x)

Definition at line 812 of file helpers.h.

◆ TENSOR3D_DECLARATION

#define TENSOR3D_DECLARATION (   name)
Value:
__global uchar *name##_ptr, uint name##_stride_x, uint name##_step_x, uint name##_stride_y, uint name##_step_y, \
uint name##_stride_z, uint name##_step_z, uint name##_offset_first_element_in_bytes

Definition at line 852 of file helpers.h.

◆ TENSOR4D_DECLARATION

#define TENSOR4D_DECLARATION (   name)
Value:
__global uchar *name##_ptr, uint name##_stride_x, uint name##_step_x, uint name##_stride_y, uint name##_step_y, \
uint name##_stride_z, uint name##_step_z, uint name##_stride_w, uint name##_step_w, \
uint name##_offset_first_element_in_bytes

Definition at line 856 of file helpers.h.

◆ TENSOR5D_DECLARATION

#define TENSOR5D_DECLARATION (   name)
Value:
__global uchar *name##_ptr, uint name##_stride_x, uint name##_step_x, uint name##_stride_y, uint name##_step_y, \
uint name##_stride_z, uint name##_step_z, uint name##_stride_w, uint name##_step_w, uint name##_stride_v, \
uint name##_step_v, uint name##_offset_first_element_in_bytes

Definition at line 861 of file helpers.h.

◆ uchar1

#define uchar1   uchar

Definition at line 505 of file helpers.h.

◆ uint1

#define uint1   uint

Definition at line 509 of file helpers.h.

◆ ulong1

#define ulong1   ulong

Definition at line 511 of file helpers.h.

◆ ushort1

#define ushort1   ushort

Definition at line 507 of file helpers.h.

◆ V_OFFS1

#define V_OFFS1 (   dt)    (dt##1)(0)

Definition at line 182 of file helpers.h.

◆ V_OFFS16

#define V_OFFS16 (   dt)    (dt##16)(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)

Definition at line 187 of file helpers.h.

◆ V_OFFS2

#define V_OFFS2 (   dt)    (dt##2)(0, 1)

Definition at line 183 of file helpers.h.

◆ V_OFFS3

#define V_OFFS3 (   dt)    (dt##3)(0, 1, 2)

Definition at line 184 of file helpers.h.

◆ V_OFFS4

#define V_OFFS4 (   dt)    (dt##4)(0, 1, 2, 3)

Definition at line 185 of file helpers.h.

◆ V_OFFS8

#define V_OFFS8 (   dt)    (dt##8)(0, 1, 2, 3, 4, 5, 6, 7)

Definition at line 186 of file helpers.h.

◆ VEC_DATA_TYPE

#define VEC_DATA_TYPE (   type,
  size 
)    VEC_DATA_TYPE_STR(type, size)

Definition at line 764 of file helpers.h.

◆ VEC_DATA_TYPE_STR

#define VEC_DATA_TYPE_STR (   type,
  size 
)    type##size

Definition at line 763 of file helpers.h.

◆ VEC_OFFS

#define VEC_OFFS (   dt,
 
)    VEC_OFFS_STR(dt, s)

Definition at line 200 of file helpers.h.

◆ VEC_OFFS_STR

#define VEC_OFFS_STR (   dt,
 
)    V_OFFS##s(dt)

Definition at line 199 of file helpers.h.

◆ VECTOR_DECLARATION

#define VECTOR_DECLARATION (   name)    __global uchar *name##_ptr, uint name##_stride_x, uint name##_step_x, uint name##_offset_first_element_in_bytes

Definition at line 845 of file helpers.h.

◆ VLOAD

#define VLOAD (   size)    VLOAD_STR(size)

Definition at line 204 of file helpers.h.

◆ vload1

#define vload1 (   OFFSET,
  PTR 
)    *(OFFSET + PTR)

Definition at line 514 of file helpers.h.

◆ VLOAD_PARTIAL

#define VLOAD_PARTIAL (   size,
  load_size 
)    VLOAD_PARTIAL_STR(size, load_size)

Definition at line 222 of file helpers.h.

◆ vload_partial_1

#define vload_partial_1 (   DATA,
  OFFSET,
  PTR 
)    DATA.s0 = vload1(OFFSET, PTR);

Definition at line 354 of file helpers.h.

◆ vload_partial_10

#define vload_partial_10 (   DATA,
  OFFSET,
  PTR 
)
Value:
vload_partial_8(DATA.s01234567, OFFSET, PTR); \
vload_partial_2(DATA.s89, OFFSET, PTR + 8);

Definition at line 380 of file helpers.h.

◆ vload_partial_11

#define vload_partial_11 (   DATA,
  OFFSET,
  PTR 
)
Value:
vload_partial_8(DATA.s01234567, OFFSET, PTR); \
vload_partial_3(DATA.s89A, OFFSET, PTR + 8);

Definition at line 384 of file helpers.h.

◆ vload_partial_12

#define vload_partial_12 (   DATA,
  OFFSET,
  PTR 
)
Value:
vload_partial_8(DATA.s01234567, OFFSET, PTR); \
vload_partial_4(DATA.s89AB, OFFSET, PTR + 8);

Definition at line 388 of file helpers.h.

◆ vload_partial_13

#define vload_partial_13 (   DATA,
  OFFSET,
  PTR 
)
Value:
vload_partial_8(DATA.s01234567, OFFSET, PTR); \
vload_partial_5(DATA.s89ABCDEF, OFFSET, PTR + 8);

Definition at line 392 of file helpers.h.

◆ vload_partial_14

#define vload_partial_14 (   DATA,
  OFFSET,
  PTR 
)
Value:
vload_partial_8(DATA.s01234567, OFFSET, PTR); \
vload_partial_6(DATA.s89ABCDEF, OFFSET, PTR + 8);

Definition at line 396 of file helpers.h.

◆ vload_partial_15

#define vload_partial_15 (   DATA,
  OFFSET,
  PTR 
)
Value:
vload_partial_8(DATA.s01234567, OFFSET, PTR); \
vload_partial_7(DATA.s89ABCDEF, OFFSET, PTR + 8);

Definition at line 400 of file helpers.h.

◆ vload_partial_16

#define vload_partial_16 (   DATA,
  OFFSET,
  PTR 
)    DATA = vload16(OFFSET, PTR);

Definition at line 404 of file helpers.h.

◆ vload_partial_16_0

#define vload_partial_16_0   NO_LOAD

Definition at line 319 of file helpers.h.

◆ vload_partial_16_1

#define vload_partial_16_1   vload_partial_1

Definition at line 320 of file helpers.h.

◆ vload_partial_16_10

#define vload_partial_16_10   vload_partial_10

Definition at line 329 of file helpers.h.

◆ vload_partial_16_11

#define vload_partial_16_11   vload_partial_11

Definition at line 330 of file helpers.h.

◆ vload_partial_16_12

#define vload_partial_16_12   vload_partial_12

Definition at line 331 of file helpers.h.

◆ vload_partial_16_13

#define vload_partial_16_13   vload_partial_13

Definition at line 332 of file helpers.h.

◆ vload_partial_16_14

#define vload_partial_16_14   vload_partial_14

Definition at line 333 of file helpers.h.

◆ vload_partial_16_15

#define vload_partial_16_15   vload_partial_15

Definition at line 334 of file helpers.h.

◆ vload_partial_16_16

#define vload_partial_16_16   vload_partial_16

Definition at line 335 of file helpers.h.

◆ vload_partial_16_2

#define vload_partial_16_2   vload_partial_2

Definition at line 321 of file helpers.h.

◆ vload_partial_16_3

#define vload_partial_16_3   vload_partial_3

Definition at line 322 of file helpers.h.

◆ vload_partial_16_4

#define vload_partial_16_4   vload_partial_4

Definition at line 323 of file helpers.h.

◆ vload_partial_16_5

#define vload_partial_16_5   vload_partial_5

Definition at line 324 of file helpers.h.

◆ vload_partial_16_6

#define vload_partial_16_6   vload_partial_6

Definition at line 325 of file helpers.h.

◆ vload_partial_16_7

#define vload_partial_16_7   vload_partial_7

Definition at line 326 of file helpers.h.

◆ vload_partial_16_8

#define vload_partial_16_8   vload_partial_8

Definition at line 327 of file helpers.h.

◆ vload_partial_16_9

#define vload_partial_16_9   vload_partial_9

Definition at line 328 of file helpers.h.

◆ vload_partial_1_0

#define vload_partial_1_0   NO_LOAD

Definition at line 229 of file helpers.h.

◆ vload_partial_1_1

#define vload_partial_1_1   vload1

Definition at line 230 of file helpers.h.

◆ vload_partial_1_10

#define vload_partial_1_10   NO_LOAD

Definition at line 239 of file helpers.h.

◆ vload_partial_1_11

#define vload_partial_1_11   NO_LOAD

Definition at line 240 of file helpers.h.

◆ vload_partial_1_12

#define vload_partial_1_12   NO_LOAD

Definition at line 241 of file helpers.h.

◆ vload_partial_1_13

#define vload_partial_1_13   NO_LOAD

Definition at line 242 of file helpers.h.

◆ vload_partial_1_14

#define vload_partial_1_14   NO_LOAD

Definition at line 243 of file helpers.h.

◆ vload_partial_1_15

#define vload_partial_1_15   NO_LOAD

Definition at line 244 of file helpers.h.

◆ vload_partial_1_16

#define vload_partial_1_16   NO_LOAD

Definition at line 245 of file helpers.h.

◆ vload_partial_1_2

#define vload_partial_1_2   NO_LOAD

Definition at line 231 of file helpers.h.

◆ vload_partial_1_3

#define vload_partial_1_3   NO_LOAD

Definition at line 232 of file helpers.h.

◆ vload_partial_1_4

#define vload_partial_1_4   NO_LOAD

Definition at line 233 of file helpers.h.

◆ vload_partial_1_5

#define vload_partial_1_5   NO_LOAD

Definition at line 234 of file helpers.h.

◆ vload_partial_1_6

#define vload_partial_1_6   NO_LOAD

Definition at line 235 of file helpers.h.

◆ vload_partial_1_7

#define vload_partial_1_7   NO_LOAD

Definition at line 236 of file helpers.h.

◆ vload_partial_1_8

#define vload_partial_1_8   NO_LOAD

Definition at line 237 of file helpers.h.

◆ vload_partial_1_9

#define vload_partial_1_9   NO_LOAD

Definition at line 238 of file helpers.h.

◆ vload_partial_2

#define vload_partial_2 (   DATA,
  OFFSET,
  PTR 
)    DATA.s01 = vload2(OFFSET, PTR);

Definition at line 356 of file helpers.h.

◆ vload_partial_2_0

#define vload_partial_2_0   NO_LOAD

Definition at line 247 of file helpers.h.

◆ vload_partial_2_1

#define vload_partial_2_1   vload_partial_1

Definition at line 248 of file helpers.h.

◆ vload_partial_2_10

#define vload_partial_2_10   NO_LOAD

Definition at line 257 of file helpers.h.

◆ vload_partial_2_11

#define vload_partial_2_11   NO_LOAD

Definition at line 258 of file helpers.h.

◆ vload_partial_2_12

#define vload_partial_2_12   NO_LOAD

Definition at line 259 of file helpers.h.

◆ vload_partial_2_13

#define vload_partial_2_13   NO_LOAD

Definition at line 260 of file helpers.h.

◆ vload_partial_2_14

#define vload_partial_2_14   NO_LOAD

Definition at line 261 of file helpers.h.

◆ vload_partial_2_15

#define vload_partial_2_15   NO_LOAD

Definition at line 262 of file helpers.h.

◆ vload_partial_2_16

#define vload_partial_2_16   NO_LOAD

Definition at line 263 of file helpers.h.

◆ vload_partial_2_2

#define vload_partial_2_2   vload_partial_2

Definition at line 249 of file helpers.h.

◆ vload_partial_2_3

#define vload_partial_2_3   NO_LOAD

Definition at line 250 of file helpers.h.

◆ vload_partial_2_4

#define vload_partial_2_4   NO_LOAD

Definition at line 251 of file helpers.h.

◆ vload_partial_2_5

#define vload_partial_2_5   NO_LOAD

Definition at line 252 of file helpers.h.

◆ vload_partial_2_6

#define vload_partial_2_6   NO_LOAD

Definition at line 253 of file helpers.h.

◆ vload_partial_2_7

#define vload_partial_2_7   NO_LOAD

Definition at line 254 of file helpers.h.

◆ vload_partial_2_8

#define vload_partial_2_8   NO_LOAD

Definition at line 255 of file helpers.h.

◆ vload_partial_2_9

#define vload_partial_2_9   NO_LOAD

Definition at line 256 of file helpers.h.

◆ vload_partial_3

#define vload_partial_3 (   DATA,
  OFFSET,
  PTR 
)    DATA.s012 = vload3(OFFSET, PTR);

Definition at line 358 of file helpers.h.

◆ vload_partial_3_0

#define vload_partial_3_0   NO_LOAD

Definition at line 265 of file helpers.h.

◆ vload_partial_3_1

#define vload_partial_3_1   vload_partial_1

Definition at line 266 of file helpers.h.

◆ vload_partial_3_10

#define vload_partial_3_10   NO_LOAD

Definition at line 275 of file helpers.h.

◆ vload_partial_3_11

#define vload_partial_3_11   NO_LOAD

Definition at line 276 of file helpers.h.

◆ vload_partial_3_12

#define vload_partial_3_12   NO_LOAD

Definition at line 277 of file helpers.h.

◆ vload_partial_3_13

#define vload_partial_3_13   NO_LOAD

Definition at line 278 of file helpers.h.

◆ vload_partial_3_14

#define vload_partial_3_14   NO_LOAD

Definition at line 279 of file helpers.h.

◆ vload_partial_3_15

#define vload_partial_3_15   NO_LOAD

Definition at line 280 of file helpers.h.

◆ vload_partial_3_16

#define vload_partial_3_16   NO_LOAD

Definition at line 281 of file helpers.h.

◆ vload_partial_3_2

#define vload_partial_3_2   vload_partial_2

Definition at line 267 of file helpers.h.

◆ vload_partial_3_3

#define vload_partial_3_3   vload_partial_3

Definition at line 268 of file helpers.h.

◆ vload_partial_3_4

#define vload_partial_3_4   NO_LOAD

Definition at line 269 of file helpers.h.

◆ vload_partial_3_5

#define vload_partial_3_5   NO_LOAD

Definition at line 270 of file helpers.h.

◆ vload_partial_3_6

#define vload_partial_3_6   NO_LOAD

Definition at line 271 of file helpers.h.

◆ vload_partial_3_7

#define vload_partial_3_7   NO_LOAD

Definition at line 272 of file helpers.h.

◆ vload_partial_3_8

#define vload_partial_3_8   NO_LOAD

Definition at line 273 of file helpers.h.

◆ vload_partial_3_9

#define vload_partial_3_9   NO_LOAD

Definition at line 274 of file helpers.h.

◆ vload_partial_4

#define vload_partial_4 (   DATA,
  OFFSET,
  PTR 
)    DATA.s0123 = vload4(OFFSET, PTR);

Definition at line 360 of file helpers.h.

◆ vload_partial_4_0

#define vload_partial_4_0   NO_LOAD

Definition at line 283 of file helpers.h.

◆ vload_partial_4_1

#define vload_partial_4_1   vload_partial_1

Definition at line 284 of file helpers.h.

◆ vload_partial_4_10

#define vload_partial_4_10   NO_LOAD

Definition at line 293 of file helpers.h.

◆ vload_partial_4_11

#define vload_partial_4_11   NO_LOAD

Definition at line 294 of file helpers.h.

◆ vload_partial_4_12

#define vload_partial_4_12   NO_LOAD

Definition at line 295 of file helpers.h.

◆ vload_partial_4_13

#define vload_partial_4_13   NO_LOAD

Definition at line 296 of file helpers.h.

◆ vload_partial_4_14

#define vload_partial_4_14   NO_LOAD

Definition at line 297 of file helpers.h.

◆ vload_partial_4_15

#define vload_partial_4_15   NO_LOAD

Definition at line 298 of file helpers.h.

◆ vload_partial_4_16

#define vload_partial_4_16   NO_LOAD

Definition at line 299 of file helpers.h.

◆ vload_partial_4_2

#define vload_partial_4_2   vload_partial_2

Definition at line 285 of file helpers.h.

◆ vload_partial_4_3

#define vload_partial_4_3   vload_partial_3

Definition at line 286 of file helpers.h.

◆ vload_partial_4_4

#define vload_partial_4_4   vload_partial_4

Definition at line 287 of file helpers.h.

◆ vload_partial_4_5

#define vload_partial_4_5   NO_LOAD

Definition at line 288 of file helpers.h.

◆ vload_partial_4_6

#define vload_partial_4_6   NO_LOAD

Definition at line 289 of file helpers.h.

◆ vload_partial_4_7

#define vload_partial_4_7   NO_LOAD

Definition at line 290 of file helpers.h.

◆ vload_partial_4_8

#define vload_partial_4_8   NO_LOAD

Definition at line 291 of file helpers.h.

◆ vload_partial_4_9

#define vload_partial_4_9   NO_LOAD

Definition at line 292 of file helpers.h.

◆ vload_partial_5

#define vload_partial_5 (   DATA,
  OFFSET,
  PTR 
)
Value:
vload_partial_4(DATA.s0123, OFFSET, PTR); \
DATA.s4 = vload1(OFFSET, PTR + 4);

Definition at line 362 of file helpers.h.

◆ vload_partial_6

#define vload_partial_6 (   DATA,
  OFFSET,
  PTR 
)
Value:
vload_partial_4(DATA.s0123, OFFSET, PTR); \
vload_partial_2(DATA.s45, OFFSET, PTR + 4);

Definition at line 366 of file helpers.h.

◆ vload_partial_7

#define vload_partial_7 (   DATA,
  OFFSET,
  PTR 
)
Value:
vload_partial_4(DATA.s0123, OFFSET, PTR); \
vload_partial_3(DATA.s456, OFFSET, PTR + 4);

Definition at line 370 of file helpers.h.

◆ vload_partial_8

#define vload_partial_8 (   DATA,
  OFFSET,
  PTR 
)    DATA.s01234567 = vload8(OFFSET, PTR);

Definition at line 374 of file helpers.h.

◆ vload_partial_8_0

#define vload_partial_8_0   NO_LOAD

Definition at line 301 of file helpers.h.

◆ vload_partial_8_1

#define vload_partial_8_1   vload_partial_1

Definition at line 302 of file helpers.h.

◆ vload_partial_8_10

#define vload_partial_8_10   NO_LOAD

Definition at line 311 of file helpers.h.

◆ vload_partial_8_11

#define vload_partial_8_11   NO_LOAD

Definition at line 312 of file helpers.h.

◆ vload_partial_8_12

#define vload_partial_8_12   NO_LOAD

Definition at line 313 of file helpers.h.

◆ vload_partial_8_13

#define vload_partial_8_13   NO_LOAD

Definition at line 314 of file helpers.h.

◆ vload_partial_8_14

#define vload_partial_8_14   NO_LOAD

Definition at line 315 of file helpers.h.

◆ vload_partial_8_15

#define vload_partial_8_15   NO_LOAD

Definition at line 316 of file helpers.h.

◆ vload_partial_8_16

#define vload_partial_8_16   NO_LOAD

Definition at line 317 of file helpers.h.

◆ vload_partial_8_2

#define vload_partial_8_2   vload_partial_2

Definition at line 303 of file helpers.h.

◆ vload_partial_8_3

#define vload_partial_8_3   vload_partial_3

Definition at line 304 of file helpers.h.

◆ vload_partial_8_4

#define vload_partial_8_4   vload_partial_4

Definition at line 305 of file helpers.h.

◆ vload_partial_8_5

#define vload_partial_8_5   vload_partial_5

Definition at line 306 of file helpers.h.

◆ vload_partial_8_6

#define vload_partial_8_6   vload_partial_6

Definition at line 307 of file helpers.h.

◆ vload_partial_8_7

#define vload_partial_8_7   vload_partial_7

Definition at line 308 of file helpers.h.

◆ vload_partial_8_8

#define vload_partial_8_8   vload_partial_8

Definition at line 309 of file helpers.h.

◆ vload_partial_8_9

#define vload_partial_8_9   NO_LOAD

Definition at line 310 of file helpers.h.

◆ vload_partial_9

#define vload_partial_9 (   DATA,
  OFFSET,
  PTR 
)
Value:
vload_partial_8(DATA.s01234567, OFFSET, PTR); \
DATA.s8 = vload1(OFFSET, PTR + 8);

Definition at line 376 of file helpers.h.

◆ VLOAD_PARTIAL_STR

#define VLOAD_PARTIAL_STR (   size,
  load_size 
)    vload_partial_##size##_##load_size

Definition at line 221 of file helpers.h.

◆ VLOAD_STR

#define VLOAD_STR (   size)    vload##size

Definition at line 203 of file helpers.h.

◆ VSTORE

#define VSTORE (   size)    VSTORE_STR(size)

Definition at line 500 of file helpers.h.

◆ vstore1

#define vstore1 (   DATA,
  OFFSET,
  PTR 
)    *(OFFSET + PTR) = DATA

Definition at line 515 of file helpers.h.

◆ VSTORE_PARTIAL

#define VSTORE_PARTIAL (   size,
  store_size 
)    VSTORE_PARTIAL_STR(size, store_size)

Definition at line 533 of file helpers.h.

◆ vstore_partial_1

#define vstore_partial_1 (   DATA,
  OFFSET,
  PTR 
)    vstore1(DATA.s0, OFFSET, PTR);

Definition at line 665 of file helpers.h.

◆ vstore_partial_10

#define vstore_partial_10 (   DATA,
  OFFSET,
  PTR 
)
Value:
vstore_partial_8(DATA.s01234567, OFFSET, PTR); \
vstore_partial_2(DATA.s89, OFFSET, PTR + 8);

Definition at line 691 of file helpers.h.

◆ vstore_partial_11

#define vstore_partial_11 (   DATA,
  OFFSET,
  PTR 
)
Value:
vstore_partial_8(DATA.s01234567, OFFSET, PTR); \
vstore_partial_3(DATA.s89a, OFFSET, PTR + 8);

Definition at line 695 of file helpers.h.

◆ vstore_partial_12

#define vstore_partial_12 (   DATA,
  OFFSET,
  PTR 
)
Value:
vstore_partial_8(DATA.s01234567, OFFSET, PTR); \
vstore_partial_4(DATA.s89ab, OFFSET, PTR + 8);

Definition at line 699 of file helpers.h.

◆ vstore_partial_13

#define vstore_partial_13 (   DATA,
  OFFSET,
  PTR 
)
Value:
vstore_partial_8(DATA.s01234567, OFFSET, PTR); \
vstore_partial_5(DATA.s89abcdef, OFFSET, PTR + 8);

Definition at line 703 of file helpers.h.

◆ vstore_partial_14

#define vstore_partial_14 (   DATA,
  OFFSET,
  PTR 
)
Value:
vstore_partial_8(DATA.s01234567, OFFSET, PTR); \
vstore_partial_6(DATA.s89abcdef, OFFSET, PTR + 8);

Definition at line 707 of file helpers.h.

◆ vstore_partial_15

#define vstore_partial_15 (   DATA,
  OFFSET,
  PTR 
)
Value:
vstore_partial_8(DATA.s01234567, OFFSET, PTR); \
vstore_partial_7(DATA.s89abcdef, OFFSET, PTR + 8);

Definition at line 711 of file helpers.h.

◆ vstore_partial_16

#define vstore_partial_16 (   DATA,
  OFFSET,
  PTR 
)    vstore16(DATA, OFFSET, PTR);

Definition at line 715 of file helpers.h.

◆ vstore_partial_16_0

#define vstore_partial_16_0   NO_STORE

Definition at line 630 of file helpers.h.

◆ vstore_partial_16_1

#define vstore_partial_16_1   vstore_partial_1

Definition at line 631 of file helpers.h.

◆ vstore_partial_16_10

#define vstore_partial_16_10   vstore_partial_10

Definition at line 640 of file helpers.h.

◆ vstore_partial_16_11

#define vstore_partial_16_11   vstore_partial_11

Definition at line 641 of file helpers.h.

◆ vstore_partial_16_12

#define vstore_partial_16_12   vstore_partial_12

Definition at line 642 of file helpers.h.

◆ vstore_partial_16_13

#define vstore_partial_16_13   vstore_partial_13

Definition at line 643 of file helpers.h.

◆ vstore_partial_16_14

#define vstore_partial_16_14   vstore_partial_14

Definition at line 644 of file helpers.h.

◆ vstore_partial_16_15

#define vstore_partial_16_15   vstore_partial_15

Definition at line 645 of file helpers.h.

◆ vstore_partial_16_16

#define vstore_partial_16_16   vstore_partial_16

Definition at line 646 of file helpers.h.

◆ vstore_partial_16_2

#define vstore_partial_16_2   vstore_partial_2

Definition at line 632 of file helpers.h.

◆ vstore_partial_16_3

#define vstore_partial_16_3   vstore_partial_3

Definition at line 633 of file helpers.h.

◆ vstore_partial_16_4

#define vstore_partial_16_4   vstore_partial_4

Definition at line 634 of file helpers.h.

◆ vstore_partial_16_5

#define vstore_partial_16_5   vstore_partial_5

Definition at line 635 of file helpers.h.

◆ vstore_partial_16_6

#define vstore_partial_16_6   vstore_partial_6

Definition at line 636 of file helpers.h.

◆ vstore_partial_16_7

#define vstore_partial_16_7   vstore_partial_7

Definition at line 637 of file helpers.h.

◆ vstore_partial_16_8

#define vstore_partial_16_8   vstore_partial_8

Definition at line 638 of file helpers.h.

◆ vstore_partial_16_9

#define vstore_partial_16_9   vstore_partial_9

Definition at line 639 of file helpers.h.

◆ vstore_partial_1_0

#define vstore_partial_1_0   NO_STORE

Definition at line 540 of file helpers.h.

◆ vstore_partial_1_1

#define vstore_partial_1_1   vstore1

Definition at line 541 of file helpers.h.

◆ vstore_partial_1_10

#define vstore_partial_1_10   NO_STORE

Definition at line 550 of file helpers.h.

◆ vstore_partial_1_11

#define vstore_partial_1_11   NO_STORE

Definition at line 551 of file helpers.h.

◆ vstore_partial_1_12

#define vstore_partial_1_12   NO_STORE

Definition at line 552 of file helpers.h.

◆ vstore_partial_1_13

#define vstore_partial_1_13   NO_STORE

Definition at line 553 of file helpers.h.

◆ vstore_partial_1_14

#define vstore_partial_1_14   NO_STORE

Definition at line 554 of file helpers.h.

◆ vstore_partial_1_15

#define vstore_partial_1_15   NO_STORE

Definition at line 555 of file helpers.h.

◆ vstore_partial_1_16

#define vstore_partial_1_16   NO_STORE

Definition at line 556 of file helpers.h.

◆ vstore_partial_1_2

#define vstore_partial_1_2   NO_STORE

Definition at line 542 of file helpers.h.

◆ vstore_partial_1_3

#define vstore_partial_1_3   NO_STORE

Definition at line 543 of file helpers.h.

◆ vstore_partial_1_4

#define vstore_partial_1_4   NO_STORE

Definition at line 544 of file helpers.h.

◆ vstore_partial_1_5

#define vstore_partial_1_5   NO_STORE

Definition at line 545 of file helpers.h.

◆ vstore_partial_1_6

#define vstore_partial_1_6   NO_STORE

Definition at line 546 of file helpers.h.

◆ vstore_partial_1_7

#define vstore_partial_1_7   NO_STORE

Definition at line 547 of file helpers.h.

◆ vstore_partial_1_8

#define vstore_partial_1_8   NO_STORE

Definition at line 548 of file helpers.h.

◆ vstore_partial_1_9

#define vstore_partial_1_9   NO_STORE

Definition at line 549 of file helpers.h.

◆ vstore_partial_2

#define vstore_partial_2 (   DATA,
  OFFSET,
  PTR 
)    vstore2(DATA.s01, OFFSET, PTR);

Definition at line 667 of file helpers.h.

◆ vstore_partial_2_0

#define vstore_partial_2_0   NO_STORE

Definition at line 558 of file helpers.h.

◆ vstore_partial_2_1

#define vstore_partial_2_1   vstore_partial_1

Definition at line 559 of file helpers.h.

◆ vstore_partial_2_10

#define vstore_partial_2_10   NO_STORE

Definition at line 568 of file helpers.h.

◆ vstore_partial_2_11

#define vstore_partial_2_11   NO_STORE

Definition at line 569 of file helpers.h.

◆ vstore_partial_2_12

#define vstore_partial_2_12   NO_STORE

Definition at line 570 of file helpers.h.

◆ vstore_partial_2_13

#define vstore_partial_2_13   NO_STORE

Definition at line 571 of file helpers.h.

◆ vstore_partial_2_14

#define vstore_partial_2_14   NO_STORE

Definition at line 572 of file helpers.h.

◆ vstore_partial_2_15

#define vstore_partial_2_15   NO_STORE

Definition at line 573 of file helpers.h.

◆ vstore_partial_2_16

#define vstore_partial_2_16   NO_STORE

Definition at line 574 of file helpers.h.

◆ vstore_partial_2_2

#define vstore_partial_2_2   vstore_partial_2

Definition at line 560 of file helpers.h.

◆ vstore_partial_2_3

#define vstore_partial_2_3   NO_STORE

Definition at line 561 of file helpers.h.

◆ vstore_partial_2_4

#define vstore_partial_2_4   NO_STORE

Definition at line 562 of file helpers.h.

◆ vstore_partial_2_5

#define vstore_partial_2_5   NO_STORE

Definition at line 563 of file helpers.h.

◆ vstore_partial_2_6

#define vstore_partial_2_6   NO_STORE

Definition at line 564 of file helpers.h.

◆ vstore_partial_2_7

#define vstore_partial_2_7   NO_STORE

Definition at line 565 of file helpers.h.

◆ vstore_partial_2_8

#define vstore_partial_2_8   NO_STORE

Definition at line 566 of file helpers.h.

◆ vstore_partial_2_9

#define vstore_partial_2_9   NO_STORE

Definition at line 567 of file helpers.h.

◆ vstore_partial_3

#define vstore_partial_3 (   DATA,
  OFFSET,
  PTR 
)    vstore3(DATA.s012, OFFSET, PTR);

Definition at line 669 of file helpers.h.

◆ vstore_partial_3_0

#define vstore_partial_3_0   NO_STORE

Definition at line 576 of file helpers.h.

◆ vstore_partial_3_1

#define vstore_partial_3_1   vstore_partial_1

Definition at line 577 of file helpers.h.

◆ vstore_partial_3_10

#define vstore_partial_3_10   NO_STORE

Definition at line 586 of file helpers.h.

◆ vstore_partial_3_11

#define vstore_partial_3_11   NO_STORE

Definition at line 587 of file helpers.h.

◆ vstore_partial_3_12

#define vstore_partial_3_12   NO_STORE

Definition at line 588 of file helpers.h.

◆ vstore_partial_3_13

#define vstore_partial_3_13   NO_STORE

Definition at line 589 of file helpers.h.

◆ vstore_partial_3_14

#define vstore_partial_3_14   NO_STORE

Definition at line 590 of file helpers.h.

◆ vstore_partial_3_15

#define vstore_partial_3_15   NO_STORE

Definition at line 591 of file helpers.h.

◆ vstore_partial_3_16

#define vstore_partial_3_16   NO_STORE

Definition at line 592 of file helpers.h.

◆ vstore_partial_3_2

#define vstore_partial_3_2   vstore_partial_2

Definition at line 578 of file helpers.h.

◆ vstore_partial_3_3

#define vstore_partial_3_3   vstore_partial_3

Definition at line 579 of file helpers.h.

◆ vstore_partial_3_4

#define vstore_partial_3_4   NO_STORE

Definition at line 580 of file helpers.h.

◆ vstore_partial_3_5

#define vstore_partial_3_5   NO_STORE

Definition at line 581 of file helpers.h.

◆ vstore_partial_3_6

#define vstore_partial_3_6   NO_STORE

Definition at line 582 of file helpers.h.

◆ vstore_partial_3_7

#define vstore_partial_3_7   NO_STORE

Definition at line 583 of file helpers.h.

◆ vstore_partial_3_8

#define vstore_partial_3_8   NO_STORE

Definition at line 584 of file helpers.h.

◆ vstore_partial_3_9

#define vstore_partial_3_9   NO_STORE

Definition at line 585 of file helpers.h.

◆ vstore_partial_4

#define vstore_partial_4 (   DATA,
  OFFSET,
  PTR 
)    vstore4(DATA.s0123, OFFSET, PTR);

Definition at line 671 of file helpers.h.

◆ vstore_partial_4_0

#define vstore_partial_4_0   NO_STORE

Definition at line 594 of file helpers.h.

◆ vstore_partial_4_1

#define vstore_partial_4_1   vstore_partial_1

Definition at line 595 of file helpers.h.

◆ vstore_partial_4_10

#define vstore_partial_4_10   NO_STORE

Definition at line 604 of file helpers.h.

◆ vstore_partial_4_11

#define vstore_partial_4_11   NO_STORE

Definition at line 605 of file helpers.h.

◆ vstore_partial_4_12

#define vstore_partial_4_12   NO_STORE

Definition at line 606 of file helpers.h.

◆ vstore_partial_4_13

#define vstore_partial_4_13   NO_STORE

Definition at line 607 of file helpers.h.

◆ vstore_partial_4_14

#define vstore_partial_4_14   NO_STORE

Definition at line 608 of file helpers.h.

◆ vstore_partial_4_15

#define vstore_partial_4_15   NO_STORE

Definition at line 609 of file helpers.h.

◆ vstore_partial_4_16

#define vstore_partial_4_16   NO_STORE

Definition at line 610 of file helpers.h.

◆ vstore_partial_4_2

#define vstore_partial_4_2   vstore_partial_2

Definition at line 596 of file helpers.h.

◆ vstore_partial_4_3

#define vstore_partial_4_3   vstore_partial_3

Definition at line 597 of file helpers.h.

◆ vstore_partial_4_4

#define vstore_partial_4_4   vstore_partial_4

Definition at line 598 of file helpers.h.

◆ vstore_partial_4_5

#define vstore_partial_4_5   NO_STORE

Definition at line 599 of file helpers.h.

◆ vstore_partial_4_6

#define vstore_partial_4_6   NO_STORE

Definition at line 600 of file helpers.h.

◆ vstore_partial_4_7

#define vstore_partial_4_7   NO_STORE

Definition at line 601 of file helpers.h.

◆ vstore_partial_4_8

#define vstore_partial_4_8   NO_STORE

Definition at line 602 of file helpers.h.

◆ vstore_partial_4_9

#define vstore_partial_4_9   NO_STORE

Definition at line 603 of file helpers.h.

◆ vstore_partial_5

#define vstore_partial_5 (   DATA,
  OFFSET,
  PTR 
)
Value:
vstore_partial_4(DATA.s0123, OFFSET, PTR); \
vstore1(DATA.s4, OFFSET, PTR + 4);

Definition at line 673 of file helpers.h.

◆ vstore_partial_6

#define vstore_partial_6 (   DATA,
  OFFSET,
  PTR 
)
Value:
vstore_partial_4(DATA.s0123, OFFSET, PTR); \
vstore_partial_2(DATA.s45, OFFSET, PTR + 4);

Definition at line 677 of file helpers.h.

◆ vstore_partial_7

#define vstore_partial_7 (   DATA,
  OFFSET,
  PTR 
)
Value:
vstore_partial_4(DATA.s0123, OFFSET, PTR); \
vstore_partial_3(DATA.s456, OFFSET, PTR + 4);

Definition at line 681 of file helpers.h.

◆ vstore_partial_8

#define vstore_partial_8 (   DATA,
  OFFSET,
  PTR 
)    vstore8(DATA.s01234567, OFFSET, PTR);

Definition at line 685 of file helpers.h.

◆ vstore_partial_8_0

#define vstore_partial_8_0   NO_STORE

Definition at line 612 of file helpers.h.

◆ vstore_partial_8_1

#define vstore_partial_8_1   vstore_partial_1

Definition at line 613 of file helpers.h.

◆ vstore_partial_8_10

#define vstore_partial_8_10   NO_STORE

Definition at line 622 of file helpers.h.

◆ vstore_partial_8_11

#define vstore_partial_8_11   NO_STORE

Definition at line 623 of file helpers.h.

◆ vstore_partial_8_12

#define vstore_partial_8_12   NO_STORE

Definition at line 624 of file helpers.h.

◆ vstore_partial_8_13

#define vstore_partial_8_13   NO_STORE

Definition at line 625 of file helpers.h.

◆ vstore_partial_8_14

#define vstore_partial_8_14   NO_STORE

Definition at line 626 of file helpers.h.

◆ vstore_partial_8_15

#define vstore_partial_8_15   NO_STORE

Definition at line 627 of file helpers.h.

◆ vstore_partial_8_16

#define vstore_partial_8_16   NO_STORE

Definition at line 628 of file helpers.h.

◆ vstore_partial_8_2

#define vstore_partial_8_2   vstore_partial_2

Definition at line 614 of file helpers.h.

◆ vstore_partial_8_3

#define vstore_partial_8_3   vstore_partial_3

Definition at line 615 of file helpers.h.

◆ vstore_partial_8_4

#define vstore_partial_8_4   vstore_partial_4

Definition at line 616 of file helpers.h.

◆ vstore_partial_8_5

#define vstore_partial_8_5   vstore_partial_5

Definition at line 617 of file helpers.h.

◆ vstore_partial_8_6

#define vstore_partial_8_6   vstore_partial_6

Definition at line 618 of file helpers.h.

◆ vstore_partial_8_7

#define vstore_partial_8_7   vstore_partial_7

Definition at line 619 of file helpers.h.

◆ vstore_partial_8_8

#define vstore_partial_8_8   vstore_partial_8

Definition at line 620 of file helpers.h.

◆ vstore_partial_8_9

#define vstore_partial_8_9   NO_STORE

Definition at line 621 of file helpers.h.

◆ vstore_partial_9

#define vstore_partial_9 (   DATA,
  OFFSET,
  PTR 
)
Value:
vstore_partial_8(DATA.s01234567, OFFSET, PTR); \
vstore1(DATA.s8, OFFSET, PTR + 8);

Definition at line 687 of file helpers.h.

◆ VSTORE_PARTIAL_STR

#define VSTORE_PARTIAL_STR (   size,
  store_size 
)    vstore_partial_##size##_##store_size

Definition at line 532 of file helpers.h.

◆ VSTORE_STR

#define VSTORE_STR (   size)    vstore##size

Definition at line 499 of file helpers.h.

◆ WRITE_IMAGE2D

#define WRITE_IMAGE2D (   data_type,
  n0,
  img,
  x_coord,
  y_coord,
  values 
)    WRITE_IMAGE2D_STR(data_type, n0, img, x_coord, y_coord, values)

Definition at line 495 of file helpers.h.

◆ write_image2d_floatx1

#define write_image2d_floatx1 (   img,
  x_coord,
  y_coord,
  values 
)    (write_imagef(img, (int2)(x_coord, y_coord), values));

Definition at line 441 of file helpers.h.

◆ write_image2d_floatx2

#define write_image2d_floatx2 (   img,
  x_coord,
  y_coord,
  values 
)
Value:
(write_imagef(img, (int2)(x_coord, y_coord), values.s0123), \
write_imagef(img, (int2)(x_coord + 1, y_coord), values.s4567));

Definition at line 442 of file helpers.h.

◆ write_image2d_floatx4

#define write_image2d_floatx4 (   img,
  x_coord,
  y_coord,
  values 
)
Value:
(write_imagef(img, (int2)(x_coord, y_coord), values.s0123), \
write_imagef(img, (int2)(x_coord + 1, y_coord), values.s4567), \
write_imagef(img, (int2)(x_coord + 2, y_coord), values.s89AB), \
write_imagef(img, (int2)(x_coord + 3, y_coord), values.sCDEF));

Definition at line 445 of file helpers.h.

◆ WRITE_IMAGE2D_STR

#define WRITE_IMAGE2D_STR (   data_type,
  n0,
  img,
  x_coord,
  y_coord,
  values 
)    write_image2d_##data_type##x##n0(img, x_coord, y_coord, values)

Utility macro to write a 2D OpenCL image object.

Note
Coordinates are not normalized
Parameters
[in]data_typeData type
[in]n0Number of pixel to write. Only 1,2 and 4 is supported
[in]imgOpenCL image object
[in]x_coordThe x coordinate for the top-left pixel
[in]y_coordThe y coordinate for the top-left pixel
[in]valuesValues to write

Definition at line 493 of file helpers.h.

Typedef Documentation

◆ Image

typedef struct Image Image

Structure to hold Image information.

◆ Tensor3D

typedef struct Tensor3D Tensor3D

Structure to hold 3D tensor information.

◆ Tensor4D

typedef struct Tensor4D Tensor4D

Structure to hold 4D tensor information.

◆ Vector

typedef struct Vector Vector

Structure to hold Vector information.

Function Documentation

◆ offset()

__global uchar* offset ( const Image img,
int  x,
int  y 
)
inline

Get the pointer position of a Image.

Parameters
[in]imgPointer to the starting position of the buffer
[in]xRelative X position
[in]yRelative Y position

Definition at line 1128 of file helpers.h.

1129 {
1130  return img->ptr + x * img->stride_x + y * img->stride_y;
1131 }

References Image::ptr, Image::stride_x, and Image::stride_y.

Referenced by CLCompatCommandBuffer::add_kernel(), CLMutableCommandBuffer::add_kernel(), arm_compute::cpu::add_sub_q8_neon_fixedpoint(), arm_compute::cpu::add_sub_q8_neon_fixedpoint_possible(), arm_compute::cpu::add_sub_qasymm8_neon(), arm_compute::cpu::add_sub_qasymm8_signed_neon(), bilinear_interpolate_with_border(), arm_compute::cpu::bilinear_neon_scale(), arm_compute::cpu::bounding_box_transform(), arm_compute::test::validation::reference::bounding_box_transform(), arm_compute::cpu::bounding_box_transform_qsymm16(), arm_compute::scale_utils::calculate_resize_ratio(), clEnqueueMapBuffer(), clEnqueueReadBuffer(), clEnqueueWriteBuffer(), arm_compute::test::colorconvert_helper::detail::colorconvert_nv12_to_rgb(), arm_compute::test::colorconvert_helper::detail::colorconvert_yuyv_to_iyuv(), arm_compute::test::colorconvert_helper::detail::colorconvert_yuyv_to_nv12(), arm_compute::test::colorconvert_helper::detail::colorconvert_yuyv_to_rgb(), CpuConcatenate::configure(), ClConcatenate::configure(), CLTileKernel::configure(), arm_compute::convert_window_coord_to_position(), ConvolutionInterleave(), arm_gemm::ConvolutionInterleave(), arm_compute::test::validation::reference::deconvolution_layer(), arm_compute::dequantize(), dequantize_qasymm8(), dequantize_qasymm8_signed(), GemmHybridIndirect< strategy, To, Tr, OutputStage, SeparateQuantize, FixedFormat >::execute(), ICLMemoryRegion::extract_subregion(), MemoryRegion::extract_subregion(), AssetsLibrary::fill(), fill_image_borders_constant(), fill_image_borders_replicate(), arm_compute::cpu::load_quantized(), arm_compute::cpu::load_quantized_signed(), MMappedFile::map(), non_max_suppression(), arm_compute::test::colorconvert_helper::detail::nv_to_iyuv(), arm_compute::test::colorconvert_helper::detail::nv_to_yuv4(), SubTensorInfo::offset_element_in_bytes(), TensorInfo::offset_element_in_bytes(), arm_compute::offset_int_vec(), SimpleTensor< uint8_t >::operator[](), quantize_qasymm8(), read_texels4(), arm_compute::test::validation::reference::reorg_layer(), roi_pooling_layer(), NEReorgLayerKernel::run(), arm_compute::test::validation::reference::select(), arm_compute::cpu::select_op_not_same_rank(), PaddingCalculator::set_access_offset(), arm_compute::test::validation::reference::slice(), arm_compute::test::validation::reference::softmax_layer_generic(), arm_compute::cpu::store_quantized(), arm_compute::cpu::store_quantized_signed(), strided_slice(), arm_compute::test::validation::reference::strided_slice(), arm_compute::test::validation::TEST_CASE(), CpuConcatenate::validate(), ClConcatenate::validate(), arm_compute::vdequantize(), arm_compute::vquantize(), arm_compute::vquantize_internal(), and arm_compute::vquantize_signed().

◆ tensor3D_index2ptr()

const __global uchar* tensor3D_index2ptr ( const Tensor3D tensor,
uint  width,
uint  height,
uint  depth,
uint  index 
)
inline

Get the offset for a given linear index of a Tensor3D.

Parameters
[in]tensorPointer to the starting position of the buffer
[in]widthWidth of the input tensor
[in]heightHeight of the input tensor
[in]depthDepth of the input tensor
[in]indexLinear index

Definition at line 1166 of file helpers.h.

1167 {
1168  uint num_elements = width * height;
1169 
1170  const uint z = index / num_elements;
1171 
1172  index %= num_elements;
1173 
1174  const uint y = index / width;
1175 
1176  index %= width;
1177 
1178  const uint x = index;
1179 
1180  return tensor->ptr + x * tensor->stride_x + y * tensor->stride_y + z * tensor->stride_z +
1181  tensor->offset_first_element_in_bytes;
1182 }

References tensor.

Referenced by max_unpooling_layer_2().

◆ tensor3D_offset()

const __global uchar* tensor3D_offset ( const Tensor3D tensor,
int  x,
int  y,
int  z 
)
inline

Get the pointer position of a Tensor3D.

Parameters
[in]tensorPointer to the starting position of the buffer
[in]xRelative X position
[in]yRelative Y position
[in]zRelative Z position

Definition at line 1140 of file helpers.h.

1141 {
1142  return tensor->ptr + x * tensor->stride_x + y * tensor->stride_y + z * tensor->stride_z;
1143 }

References tensor.

Referenced by roi_pool_1x1(), roi_pooling_layer(), upsample_layer_nchw(), and upsample_layer_nhwc().

◆ tensor3D_ptr_no_update()

Tensor3D tensor3D_ptr_no_update ( __global uchar *  ptr,
uint  offset_first_element_in_bytes,
uint  stride_x,
uint  step_x,
uint  stride_y,
uint  step_y,
uint  stride_z,
uint  step_z 
)
inline

Wrap 3D tensor information into an tensor structure.

Parameters
[in]ptrPointer to the starting postion of the buffer
[in]offset_first_element_in_bytesThe offset of the first element in the source image
[in]stride_xStride of the image in X dimension (in bytes)
[in]step_xstride_x * number of elements along X processed per workitem(in bytes)
[in]stride_yStride of the image in Y dimension (in bytes)
[in]step_ystride_y * number of elements along Y processed per workitem(in bytes)
[in]stride_zStride of the image in Z dimension (in bytes)
[in]step_zstride_z * number of elements along Z processed per workitem(in bytes)
Returns
A 3D tensor object

Definition at line 1071 of file helpers.h.

1079 {
1080  Tensor3D tensor = {.ptr = ptr,
1081  .offset_first_element_in_bytes = offset_first_element_in_bytes,
1082  .stride_x = stride_x,
1083  .stride_y = stride_y,
1084  .stride_z = stride_z};
1085  return tensor;
1086 }

References tensor.

◆ tensor4D_offset()

const __global uchar* tensor4D_offset ( const Tensor4D tensor,
int  x,
int  y,
int  z,
int  w 
)
inline

Get the pointer position of a Tensor4D.

Parameters
[in]tensorPointer to the starting position of the buffer
[in]xRelative X position
[in]yRelative Y position
[in]zRelative Z position
[in]wRelative W position

Definition at line 1153 of file helpers.h.

1154 {
1155  return tensor->ptr + x * tensor->stride_x + y * tensor->stride_y + z * tensor->stride_z + w * tensor->stride_w;
1156 }

References tensor, and arm_compute::test::validation::w.

◆ update_image_from_tensor3D_workitem_ptr()

Image update_image_from_tensor3D_workitem_ptr ( __global uchar *  ptr,
uint  offset_first_element_in_bytes,
uint  stride_x,
uint  step_x,
uint  stride_y,
uint  step_y,
uint  stride_z,
uint  step_z 
)
inline

Wrap 3D tensor information into an image structure, and make the pointer point at this workitem's data.

Parameters
[in]ptrPointer to the starting postion of the buffer
[in]offset_first_element_in_bytesThe offset of the first element in the source image
[in]stride_xStride of the image in X dimension (in bytes)
[in]step_xstride_x * number of elements along X processed per workitem(in bytes)
[in]stride_yStride of the image in Y dimension (in bytes)
[in]step_ystride_y * number of elements along Y processed per workitem(in bytes)
[in]stride_zStride of the image in Z dimension (in bytes)
[in]step_zstride_z * number of elements along Z processed per workitem(in bytes)
Returns
A 3D tensor object

Definition at line 1008 of file helpers.h.

1016 {
1017  Image img = {.ptr = ptr,
1018  .offset_first_element_in_bytes = offset_first_element_in_bytes,
1019  .stride_x = stride_x,
1020  .stride_y = stride_y};
1021  img.ptr += img.offset_first_element_in_bytes + get_global_id(0) * step_x + get_global_id(1) * step_y +
1022  get_global_id(2) * step_z;
1023  return img;
1024 }

References Image::offset_first_element_in_bytes, and Image::ptr.

◆ update_image_workitem_ptr()

Image update_image_workitem_ptr ( __global uchar *  ptr,
uint  offset_first_element_in_bytes,
uint  stride_x,
uint  step_x,
uint  stride_y,
uint  step_y 
)
inline

Wrap image information into an Image structure, and make the pointer point at this workitem's data.

Parameters
[in]ptrPointer to the starting postion of the buffer
[in]offset_first_element_in_bytesThe offset of the first element in the source image
[in]stride_xStride of the image in X dimension (in bytes)
[in]step_xstride_x * number of elements along X processed per workitem(in bytes)
[in]stride_yStride of the image in Y dimension (in bytes)
[in]step_ystride_y * number of elements along Y processed per workitem(in bytes)
Returns
An image object

Definition at line 984 of file helpers.h.

986 {
987  Image img = {.ptr = ptr,
988  .offset_first_element_in_bytes = offset_first_element_in_bytes,
989  .stride_x = stride_x,
990  .stride_y = stride_y};
991  img.ptr += img.offset_first_element_in_bytes + get_global_id(0) * step_x + get_global_id(1) * step_y;
992  return img;
993 }

References Image::offset_first_element_in_bytes, and Image::ptr.

◆ update_tensor3D_workitem_ptr()

Tensor3D update_tensor3D_workitem_ptr ( __global uchar *  ptr,
uint  offset_first_element_in_bytes,
uint  stride_x,
uint  step_x,
uint  stride_y,
uint  step_y,
uint  stride_z,
uint  step_z 
)
inline

Wrap 3D tensor information into an tensor structure, and make the pointer point at this workitem's data.

Parameters
[in]ptrPointer to the starting postion of the buffer
[in]offset_first_element_in_bytesThe offset of the first element in the source image
[in]stride_xStride of the image in X dimension (in bytes)
[in]step_xstride_x * number of elements along X processed per workitem(in bytes)
[in]stride_yStride of the image in Y dimension (in bytes)
[in]step_ystride_y * number of elements along Y processed per workitem(in bytes)
[in]stride_zStride of the image in Z dimension (in bytes)
[in]step_zstride_z * number of elements along Z processed per workitem(in bytes)
Returns
A 3D tensor object

Definition at line 1039 of file helpers.h.

1047 {
1048  Tensor3D tensor = {.ptr = ptr,
1049  .offset_first_element_in_bytes = offset_first_element_in_bytes,
1050  .stride_x = stride_x,
1051  .stride_y = stride_y,
1052  .stride_z = stride_z};
1053  tensor.ptr += tensor.offset_first_element_in_bytes + get_global_id(0) * step_x + get_global_id(1) * step_y +
1054  get_global_id(2) * step_z;
1055  return tensor;
1056 }

References tensor.

◆ update_tensor4D_workitem_ptr()

Tensor4D update_tensor4D_workitem_ptr ( __global uchar *  ptr,
uint  offset_first_element_in_bytes,
uint  stride_x,
uint  step_x,
uint  stride_y,
uint  step_y,
uint  stride_z,
uint  step_z,
uint  stride_w,
uint  step_w,
uint  mod_size 
)
inline

Definition at line 1088 of file helpers.h.

1099 {
1100  Tensor4D tensor = {.ptr = ptr,
1101  .offset_first_element_in_bytes = offset_first_element_in_bytes,
1102  .stride_x = stride_x,
1103  .stride_y = stride_y,
1104  .stride_z = stride_z,
1105  .stride_w = stride_w};
1106 
1107  tensor.ptr += tensor.offset_first_element_in_bytes + get_global_id(0) * step_x + get_global_id(1) * step_y +
1108  (get_global_id(2) % mod_size) * step_z + (get_global_id(2) / mod_size) * step_w;
1109  return tensor;
1110 }

References tensor.

◆ update_vector_workitem_ptr()

Vector update_vector_workitem_ptr ( __global uchar *  ptr,
uint  offset_first_element_in_bytes,
uint  stride_x,
uint  step_x 
)
inline

Wrap vector information into an Vector structure, and make the pointer point at this workitem's data.

Parameters
[in]ptrPointer to the starting postion of the buffer
[in]offset_first_element_in_bytesThe offset of the first element in the source vector
[in]stride_xStride of the vector in X dimension (in bytes)
[in]step_xstride_x * number of elements along X processed per workitem(in bytes)
Returns
An image object

Definition at line 962 of file helpers.h.

963 {
964  Vector vector = {
965  .ptr = ptr,
966  .offset_first_element_in_bytes = offset_first_element_in_bytes,
967  .stride_x = stride_x,
968  };
969  vector.ptr += vector.offset_first_element_in_bytes + get_global_id(0) * step_x;
970  return vector;
971 }

References Vector::offset_first_element_in_bytes, and Vector::ptr.

◆ vector_offset()

const __global uchar* vector_offset ( const Vector vec,
int  x 
)
inline

Get the pointer position of a Vector.

Parameters
[in]vecPointer to the starting position of the buffer
[in]xRelative X position

Definition at line 1117 of file helpers.h.

1118 {
1119  return vec->ptr + x * vec->stride_x;
1120 }

References Vector::ptr, and Vector::stride_x.

Referenced by direct_convolution_nchw().

Vector
Structure to hold Vector information.
Definition: helpers.h:915
Image::offset_first_element_in_bytes
int offset_first_element_in_bytes
The offset of the first element in the source image.
Definition: helpers.h:926
Vector::offset_first_element_in_bytes
int offset_first_element_in_bytes
The offset of the first element in the source image.
Definition: helpers.h:918
Image::stride_y
int stride_y
Stride of the image in Y dimension (in bytes)
Definition: helpers.h:928
vload_partial_8
#define vload_partial_8(DATA, OFFSET, PTR)
Definition: helpers.h:374
Image::stride_x
int stride_x
Stride of the image in X dimension (in bytes)
Definition: helpers.h:927
update_tensor4D_workitem_ptr
Tensor4D update_tensor4D_workitem_ptr(__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x, uint stride_y, uint step_y, uint stride_z, uint step_z, uint stride_w, uint step_w, uint mod_size)
Definition: helpers.h:1088
Image
Structure to hold Image information.
Definition: helpers.h:923
update_tensor3D_workitem_ptr
Tensor3D update_tensor3D_workitem_ptr(__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x, uint stride_y, uint step_y, uint stride_z, uint step_z)
Wrap 3D tensor information into an tensor structure, and make the pointer point at this workitem's da...
Definition: helpers.h:1039
Tensor3D
Structure to hold 3D tensor information.
Definition: helpers.h:932
vload1
#define vload1(OFFSET, PTR)
Definition: helpers.h:514
Tensor4D
Structure to hold 4D tensor information.
Definition: helpers.h:942
arm_compute::test::validation::w
SimpleTensor< float > w
Definition: DFT.cpp:156
vload_partial_4
#define vload_partial_4(DATA, OFFSET, PTR)
Definition: helpers.h:360
vstore_partial_8
#define vstore_partial_8(DATA, OFFSET, PTR)
Definition: helpers.h:685
name
const char * name
Definition: NEBatchNormalizationLayerKernel.cpp:66
vstore_partial_4
#define vstore_partial_4(DATA, OFFSET, PTR)
Definition: helpers.h:671
tensor
CLTensor * tensor
Pointer to the auxiliary tensor.
Definition: ClWorkloadRuntime.cpp:67
Vector::stride_x
int stride_x
Stride of the image in X dimension (in bytes)
Definition: helpers.h:919
tensor3D_ptr_no_update
Tensor3D tensor3D_ptr_no_update(__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x, uint stride_y, uint step_y, uint stride_z, uint step_z)
Wrap 3D tensor information into an tensor structure.
Definition: helpers.h:1071
Image::ptr
__global uchar * ptr
Pointer to the starting postion of the buffer.
Definition: helpers.h:925
update_image_from_tensor3D_workitem_ptr
Image update_image_from_tensor3D_workitem_ptr(__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x, uint stride_y, uint step_y, uint stride_z, uint step_z)
Wrap 3D tensor information into an image structure, and make the pointer point at this workitem's dat...
Definition: helpers.h:1008
update_image_workitem_ptr
Image update_image_workitem_ptr(__global uchar *ptr, uint offset_first_element_in_bytes, uint stride_x, uint step_x, uint stride_y, uint step_y)
Wrap image information into an Image structure, and make the pointer point at this workitem's data.
Definition: helpers.h:984
Vector::ptr
__global uchar * ptr
Pointer to the starting postion of the buffer.
Definition: helpers.h:917