Test cases where the index/mask/delta is greater than or equal to the
maximum subgroup size. These are cases that return undefined results
but are not undefined behavior.
The index/mask/delta values now include values less than twice the
subgroup size, and 0xffffffff.
Testing for sub_group_shuffle_xor() already allowed inputs that were
greater or equal to the subgroup size for the last subgroup in a
workgroup, but did not properly account for this in the verification
function, potentially resulting in out of bounds accesses.
Signed-off-by: Stuart Brady <stuart.brady@arm.com>
* Set safe input values for half type and mul, add operations
* Set safe values for all data types
* Typo fix
* Set constant seed for shuffle
* Change function name to more specific
* set_value takes an integer value, not a bit pattern
Note that this also corrects the start messages logged for the
sub_group_ballot_bit_count/find_msb/find_lsb tests.
Signed-off-by: Stuart Brady <stuart.brady@arm.com>
* Extended subgroups - use 128bit masks
* Refactoring to avoid kernels code duplication
* unification kernel names as test_ prefix +subgroups function name
* use string literals that improve readability
* use kernel templates that limit code duplication
* WorkGroupParams allows define default kernel - kernel template for multiple functions
* WorkGroupParams allows define kernel for specific one subgroup function
Co-authored-by: Stuart Brady <stuart.brady@arm.com>
* subgroups: Fix setting cl_halfs and progress check.
cl_float testing uses set_value such that a generated cl_ulong of 1 is
stored as 1.0F in a logical sense. However, cl_half values aren't
intrinsic to C++ and generated cl_ulongs less than 1024 in particular
are interpreted bitwise as subnormals. The test fails on compute devices
lacking subnormal support. Perform the logical conversion to cl_half.
Fix independent forward progress check.
* subgroups_half: Address review comments
* subgroups_half: Formatting fixes required by check-format
* subgroups_half: Modified to query and use rounding mode supported by device
Co-authored-by: spauls <spauls@qti.qualcomm.com>