ping > On Oct 27, 2017, at 03:02, Matt Arsenault <arse...@gmail.com> wrote: > > --- > tests/cl/program/execute/load-lo16-generic.cl | 90 +++++++++ > tests/cl/program/execute/load-lo16.cl | 275 ++++++++++++++++++++++++++ > 2 files changed, 365 insertions(+) > create mode 100644 tests/cl/program/execute/load-lo16-generic.cl > create mode 100644 tests/cl/program/execute/load-lo16.cl > > diff --git a/tests/cl/program/execute/load-lo16-generic.cl > b/tests/cl/program/execute/load-lo16-generic.cl > new file mode 100644 > index 000000000..62660c629 > --- /dev/null > +++ b/tests/cl/program/execute/load-lo16-generic.cl > @@ -0,0 +1,90 @@ > +/*! > + > +[config] > +name: load into low 16-bits of 32-bit register with generic addressing > +clc_version_min: 20 > +dimensions: 1 > + > +[test] > + name: load lo16 generic > + kernel_name: load_lo16_generic > + global_size: 4 0 0 > + local_size: 4 0 0 > + > + arg_out: 0 buffer uint[4] \ > + 0xabcd9999 0x12343333 0x11114444 0xdeadbeef > + > + arg_in: 1 buffer uint[4] \ > + 0xabcdf00f 0x1234f00f 0x1111f00f 0xdeadf00f > + > + arg_in: 2 buffer ushort[4] \ > + 0x9999 0x3333 0x4444 0xbeef > + > +[test] > + name: zextloadi8 lo16 generic > + kernel_name: zextloadi8_lo16_generic > + global_size: 4 0 0 > + local_size: 4 0 0 > + > +arg_out: 0 buffer uint[4] \ > + 0x00ab0099 0x00120033 0x00110044 0x00de00be > + > +arg_in: 1 buffer uint[4] \ > + 0x00abf00f 0x0012f00f 0x0011f00f 0x00def00f > + > +arg_in: 2 buffer uchar[4] \ > + 0x99 0x33 0x44 0xbe > + > + > +[test] > + name: sextloadi8 lo16 generic > + kernel_name: sextloadi8_lo16_generic > + global_size: 4 0 0 > + local_size: 4 0 0 > + > +arg_out: 0 buffer uint[4] \ > + 0x0099ffab 0x00330012 0x00440011 0x00beffde > + > +arg_in: 1 buffer uint[4] \ > + 0x0099f00f 0x0033f00f 0x0044f00f 0x00bef00f > + > +arg_in: 2 buffer char[4] \ > + 0xab 0x12 0x11 0xde > + > +!*/ > + > +kernel void load_lo16_generic(volatile global uint* out, > + volatile global uint* in0, > + volatile global ushort* in1) > +{ > + volatile generic uint* generic_in0 = (volatile generic uint*)in0; > + volatile generic ushort* generic_in1 = (volatile generic ushort*)in1; > + int gid = get_global_id(0); > + ushort2 val = as_ushort2(in0[gid]); > + val.lo = generic_in1[gid]; > + out[gid] = as_uint(val); > +} > + > +kernel void zextloadi8_lo16_generic(volatile global uint* out, > + volatile global uint* in0, > + volatile global uchar* in1) > +{ > + volatile generic uint* generic_in0 = (volatile generic uint*)in0; > + volatile generic uchar* generic_in1 = (volatile generic uchar*)in1; > + int gid = get_global_id(0); > + ushort2 val = as_ushort2(in0[gid]); > + val.lo = (ushort)generic_in1[gid]; > + out[gid] = as_uint(val); > +} > + > +kernel void sextloadi8_lo16_generic(volatile global uint* out, > + volatile global uint* in0, > + volatile global char* in1) > +{ > + volatile generic uint* generic_in0 = (volatile generic uint*)in0; > + volatile generic char* generic_in1 = (volatile generic char*)in1; > + int gid = get_global_id(0); > + short2 val = as_short2(in0[gid]); > + val.lo = (short)generic_in1[gid]; > + out[gid] = as_uint(val); > +} > diff --git a/tests/cl/program/execute/load-lo16.cl > b/tests/cl/program/execute/load-lo16.cl > new file mode 100644 > index 000000000..f8bf2c2f6 > --- /dev/null > +++ b/tests/cl/program/execute/load-lo16.cl > @@ -0,0 +1,275 @@ > +/*! > + > +[config] > + name: load into low 16-bits of 32-bit register > + clc_version_min: 10 > + dimensions: 1 > + > +[test] > + name: load lo16 global > + kernel_name: load_lo16_global > + global_size: 4 0 0 > + local_size: 4 0 0 > + > + arg_out: 0 buffer uint[4] \ > + 0xabcd9999 0x12343333 0x11114444 0xdeadbeef > + > + arg_in: 1 buffer uint[4] \ > + 0xabcdf00f 0x1234f00f 0x1111f00f 0xdeadf00f > + > + arg_in: 2 buffer ushort[4] \ > + 0x9999 0x3333 0x4444 0xbeef > + > + > +[test] > + name: load lo16 local > + kernel_name: load_lo16_local > + global_size: 4 0 0 > + local_size: 4 0 0 > + > + arg_out: 0 buffer uint[4] \ > + 0xabcd9999 0x12343333 0x11114444 0xdeadbeef > + > + arg_in: 1 buffer uint[4] \ > + 0xabcdf00f 0x1234f00f 0x1111f00f 0xdeadf00f > + > + arg_in: 2 buffer ushort[4] \ > + 0x9999 0x3333 0x4444 0xbeef > + > +[test] > + name: load lo16 private > + kernel_name: load_lo16_private > + global_size: 4 0 0 > + local_size: 4 0 0 > + > + arg_out: 0 buffer uint[4] \ > + 0xabcd9999 0x12343333 0x11114444 0xdeadbeef > + > + arg_in: 1 buffer uint[4] \ > + 0xabcdf00f 0x1234f00f 0x1111f00f 0xdeadf00f > + > + arg_in: 2 buffer ushort[4] \ > + 0x9999 0x3333 0x4444 0xbeef > + > + > +[test] > + name: zextloadi8 lo16 global > + kernel_name: zextloadi8_lo16_global > + global_size: 4 0 0 > + local_size: 4 0 0 > + > +arg_out: 0 buffer uint[4] \ > + 0x00ab0099 0x00120033 0x00110044 0x00de00be > + > +arg_in: 1 buffer uint[4] \ > + 0x00abf00f 0x0012f00f 0x0011f00f 0x00def00f > + > +arg_in: 2 buffer uchar[4] \ > + 0x99 0x33 0x44 0xbe > + > + > +[test] > + name: sextloadi8 lo16 global > + kernel_name: sextloadi8_lo16_global > + global_size: 4 0 0 > + local_size: 4 0 0 > + > +arg_out: 0 buffer uint[4] \ > + 0x0099ffab 0x00330012 0x00440011 0x00beffde > + > +arg_in: 1 buffer uint[4] \ > + 0x0099f00f 0x0033f00f 0x0044f00f 0x00bef00f > + > +arg_in: 2 buffer char[4] \ > + 0xab 0x12 0x11 0xde > + > + > +[test] > + name: zextloadi8 lo16 local > + kernel_name: zextloadi8_lo16_local > + global_size: 4 0 0 > + local_size: 4 0 0 > + > +arg_out: 0 buffer uint[4] \ > + 0x00ab0099 0x00120033 0x00110044 0x00de00be > + > +arg_in: 1 buffer uint[4] \ > + 0x00abf00f 0x0012f00f 0x0011f00f 0x00def00f > + > +arg_in: 2 buffer uchar[4] \ > + 0x99 0x33 0x44 0xbe > + > + > +[test] > + name: sextloadi8 lo16 local > + kernel_name: sextloadi8_lo16_local > + global_size: 4 0 0 > + local_size: 4 0 0 > + > +arg_out: 0 buffer uint[4] \ > + 0x0099ffab 0x00330012 0x00440011 0x00beffde > + > +arg_in: 1 buffer uint[4] \ > + 0x0099f00f 0x0033f00f 0x0044f00f 0x00bef00f > + > +arg_in: 2 buffer char[4] \ > + 0xab 0x12 0x11 0xde > + > + > +[test] > + name: zextloadi8 lo16 private > + kernel_name: zextloadi8_lo16_private > + global_size: 4 0 0 > + local_size: 4 0 0 > + > +arg_out: 0 buffer uint[4] \ > + 0x00ab0099 0x00120033 0x00110044 0x00de00be > + > +arg_in: 1 buffer uint[4] \ > + 0x00abf00f 0x0012f00f 0x0011f00f 0x00def00f > + > +arg_in: 2 buffer uchar[4] \ > + 0x99 0x33 0x44 0xbe > + > + > +[test] > + name: sextloadi8 lo16 private > + kernel_name: sextloadi8_lo16_private > + global_size: 4 0 0 > + local_size: 4 0 0 > + > +arg_out: 0 buffer uint[4] \ > + 0x0099ffab 0x00330012 0x00440011 0x00beffde > + > +arg_in: 1 buffer uint[4] \ > + 0x0099f00f 0x0033f00f 0x0044f00f 0x00bef00f > + > +arg_in: 2 buffer char[4] \ > + 0xab 0x12 0x11 0xde > + > +!*/ > + > +kernel void load_lo16_global(volatile global uint* out, > + volatile global uint* in0, > + volatile global ushort* in1) > +{ > + int gid = get_global_id(0); > + ushort2 val = as_ushort2(in0[gid]); > + val.lo = in1[gid]; > + out[gid] = as_uint(val); > +} > + > +kernel void load_lo16_local(volatile global uint* out, > + volatile global uint* in0, > + volatile global ushort* in1) > +{ > + int lid = get_local_id(0); > + int gid = get_global_id(0); > + > + volatile local uint lds0[64]; > + volatile local ushort lds1[64]; > + > + lds0[lid] = in0[gid]; > + lds1[lid] = in1[gid]; > + > + ushort2 val = as_ushort2(lds0[gid]); > + val.lo = lds1[gid]; > + out[gid] = as_uint(val); > +} > + > +kernel void load_lo16_private(volatile global uint* out, > + volatile global uint* in0, > + volatile global ushort* in1) > +{ > + int gid = get_global_id(0); > + > + volatile private uint stack0 = in0[gid]; > + volatile private ushort stack1 = in1[gid]; > + > + ushort2 val = as_ushort2(stack0); > + val.lo = stack1; > + out[gid] = as_uint(val); > +} > + > +kernel void zextloadi8_lo16_global(volatile global uint* out, > + volatile global uint* in0, > + volatile global uchar* in1) > +{ > + int gid = get_global_id(0); > + ushort2 val = as_ushort2(in0[gid]); > + val.lo = (ushort)in1[gid]; > + out[gid] = as_uint(val); > +} > + > +kernel void sextloadi8_lo16_global(volatile global uint* out, > + volatile global uint* in0, > + volatile global char* in1) > +{ > + int gid = get_global_id(0); > + short2 val = as_short2(in0[gid]); > + val.lo = (short)in1[gid]; > + out[gid] = as_uint(val); > +} > + > +kernel void zextloadi8_lo16_local(volatile global uint* out, > + volatile global uint* in0, > + volatile global uchar* in1) > +{ > + int lid = get_local_id(0); > + int gid = get_global_id(0); > + > + volatile local uint lds0[64]; > + volatile local uchar lds1[64]; > + > + lds0[lid] = in0[gid]; > + lds1[lid] = in1[gid]; > + > + ushort2 val = as_ushort2(lds0[gid]); > + val.lo = (ushort)lds1[gid]; > + out[gid] = as_uint(val); > +} > + > +kernel void sextloadi8_lo16_local(volatile global uint* out, > + volatile global uint* in0, > + volatile global char* in1) > +{ > + int lid = get_local_id(0); > + int gid = get_global_id(0); > + > + volatile local uint lds0[64]; > + volatile local char lds1[64]; > + > + lds0[lid] = in0[gid]; > + lds1[lid] = in1[gid]; > + > + short2 val = as_short2(lds0[gid]); > + val.lo = (short)lds1[gid]; > + out[gid] = as_uint(val); > +} > + > +kernel void zextloadi8_lo16_private(volatile global uint* out, > + volatile global uint* in0, > + volatile global uchar* in1) > +{ > + int gid = get_global_id(0); > + volatile uint stack0 = in0[gid]; > + volatile uchar stack1 = in1[gid]; > + > + ushort2 val = as_ushort2(stack0); > + val.lo = (ushort)stack1; > + out[gid] = as_uint(val); > +} > + > +kernel void sextloadi8_lo16_private(volatile global uint* out, > + volatile global uint* in0, > + volatile global char* in1) > +{ > + int gid = get_global_id(0); > + volatile uint stack0 = in0[gid]; > + volatile char stack1 = in1[gid]; > + > + short2 val = as_short2(stack0); > + val.lo = (short)stack1; > + out[gid] = as_uint(val); > +} > + > -- > 2.11.0 >
_______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit