The math_brute_force /fma test cases report errors for ternary special value tests involving float and double data types, introduced in OpenCL-CTS PR #2697.
Root Cause:
The ternary tests (e.g., fma, mad) enumerate the full Cartesian product of special values across their three operands into a single BUFFER_SIZE input buffer. This requires:
specialValuesCount^3 <= BUFFER_SIZE / sizeof(T)
However, the current special values list is a union of values intended for unary and binary tests, which is too large for ternary tests. Specifically:
-
Float: 98 special values → 98^3 = 941,192 entries
-
Double: 106 special values → 106^3 = 1,191,016 entries
Both cases overflow the buffer, causing test failures.
The proposed fix is to reduce special value list for increase BUFFER_SIZE value.
The math_brute_force /fma test cases report errors for ternary special value tests involving float and double data types, introduced in OpenCL-CTS PR #2697.
Root Cause:
The ternary tests (e.g., fma, mad) enumerate the full Cartesian product of special values across their three operands into a single BUFFER_SIZE input buffer. This requires:
specialValuesCount^3 <= BUFFER_SIZE / sizeof(T)
However, the current special values list is a union of values intended for unary and binary tests, which is too large for ternary tests. Specifically:
Float: 98 special values → 98^3 = 941,192 entries
Double: 106 special values → 106^3 = 1,191,016 entries
Both cases overflow the buffer, causing test failures.
The proposed fix is to reduce special value list for increase BUFFER_SIZE value.