[Piglit] [PATCH] cl: Add signbit(float) relational tests

Tom Stellard tom at stellard.net
Fri Jun 20 09:35:41 PDT 2014


On Fri, Jun 20, 2014 at 11:29:13AM -0500, Aaron Watry wrote:
> Also, while doing this, needed to add a NEGNAN define to genclbuiltins.py because
> python just prints nan for float("-nan") when generating tests.
> 
> cl-program-tester can handle -nan as an input correctly, so just pass the value
> through as a string without python attempting to handle it.
> 
> v2: Add nan and -nan tests
> 

Reviewed-by: Tom Stellard <thomas.stellard at amd.com>

> Signed-off-by: Aaron Watry <awatry at gmail.com>
> CC: Tom Stellard <thomas.stellard at amd.com>
> ---
>  generated_tests/genclbuiltins.py                   |  3 +++
>  generated_tests/generate-cl-relational-builtins.py | 11 ++++++++++-
>  2 files changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/generated_tests/genclbuiltins.py b/generated_tests/genclbuiltins.py
> index 2d2b322..9173cdb 100644
> --- a/generated_tests/genclbuiltins.py
> +++ b/generated_tests/genclbuiltins.py
> @@ -56,6 +56,7 @@ UMAX = 'unsigned_max_for_type'
>  TYPE = 'TYPE'
>  SIZE = 'SIZE'
>  TRUE = 'true_value_for_type' #1 for scalar, -1 for vector
> +NEGNAN = 'Negative NAN as a string, because float("-nan") just produces nan'
>  
>  # Identity type list
>  T = {
> @@ -234,6 +235,8 @@ def getValue(type, val, isVector):
>                  return -1
>              else:
>                  return 1
> +        elif (val == NEGNAN):
> +            return '-nan' #cl-program-tester translates this for us
>          else:
>              print('Unknown string value: ' + val + '\n')
>      elif (isinstance(val, list)):
> diff --git a/generated_tests/generate-cl-relational-builtins.py b/generated_tests/generate-cl-relational-builtins.py
> index dd9bc35..db7b7f5 100644
> --- a/generated_tests/generate-cl-relational-builtins.py
> +++ b/generated_tests/generate-cl-relational-builtins.py
> @@ -27,7 +27,7 @@
>  
>  import os
>  
> -from genclbuiltins import gen, TRUE
> +from genclbuiltins import gen, TRUE, NEGNAN
>  
>  CLC_VERSION_MIN = {
>      'isnan' : 10,
> @@ -35,6 +35,7 @@ CLC_VERSION_MIN = {
>      'isgreater' : 10,
>      'isgreaterequal' : 10,
>      'isnotequal' : 10,
> +    'signbit' : 10
>  }
>  
>  DATA_TYPES = ['float']
> @@ -91,6 +92,14 @@ tests = {
>              [0.0,  float("nan"), 1.0,  1,            float("nan"), float("inf"), 1.0,  0.5 ], # Arg0
>              [0.0,  float("nan"), 1.0,  float("nan"), 1,            float("inf"), 0.5,  1.0 ]  # Arg1
>          ]
> +    },
> +    'signbit' : {
> +        'arg_types': [I, F],
> +        'function_type': 'ttt',
> +        'values': [
> +            [0,   TRUE,        0,   0, TRUE,          0,            TRUE, 0           , TRUE    ], # Result
> +            [0.0, float(0)*-1, 1.0, 1, float("-inf"), float("inf"), -1.0, float("nan"), NEGNAN ]  # Arg0
> +        ]
>      }
>  }
>  
> -- 
> 1.9.1
> 
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list