[Piglit] [PATCH 4/5] cl: Add isnotequal(float, float) relational tests

Aaron Watry awatry at gmail.com
Tue Jun 17 06:45:03 PDT 2014


On Fri, Jun 13, 2014 at 3:52 AM, Bruno Jimenez <brunojimen at gmail.com> wrote:
> On Thu, 2014-06-12 at 19:32 -0400, Tom Stellard wrote:
>> On Wed, Jun 11, 2014 at 02:14:14PM -0500, Aaron Watry wrote:
>> > Signed-off-by: Aaron Watry <awatry at gmail.com>
>> > ---
>> >  generated_tests/generate-cl-relational-builtins.py | 12 +++++++++++-
>> >  1 file changed, 11 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/generated_tests/generate-cl-relational-builtins.py b/generated_tests/generate-cl-relational-builtins.py
>> > index 97e6be6..f22f5d1 100644
>> > --- a/generated_tests/generate-cl-relational-builtins.py
>> > +++ b/generated_tests/generate-cl-relational-builtins.py
>> > @@ -32,7 +32,8 @@ from genclbuiltins import gen, TRUE
>> >  CLC_VERSION_MIN = {
>> >      'isnan' : 10,
>> >      'isgreater' : 10,
>> > -    'isgreaterequal' : 10
>> > +    'isgreaterequal' : 10,
>> > +    'isnotequal' : 10,
>> >  }
>> >
>> >  DATA_TYPES = ['float']
>> > @@ -71,6 +72,15 @@ 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
>> >          ]
>> > +    },
>> > +    'isnotequal' : {
>> > +        'arg_types': [I, F, F],
>> > +        'function_type': 'ttt',
>> > +        'values': [
>> > +            [0,    TRUE,         0,    TRUE,         TRUE,         0,            TRUE, TRUE],    # Result
>>
>> I think comparisons involving nan are always false, so the three nan
>> cases should be changed to 0.  You might want to double check this,
>> though.
>
> Hi,
>
> That's not entirely true, there's an exception here (too many exceptions
> i'm finding in this language) According to the spec for OpenCL 1.2
> section 6.12.6 "Relational Functions"
>
> "The relational functions isequal, isgreater, isgreaterequal, isless,
> islessequal, and islessgreater always return 0 if either argument is not
> a number (NAN) [ok here]. isnotequal returns 1 if one or both arguments
> are not a number (NAN) and the argument type is a scalar and returns -1
> if one or both arguments are not a number (NAN) and the argument type is
> a vector. [exceptions...]"
>
> Bruno

Yeah, Bruno beat me to it.  isnotequal is different from the other
relational functions with respect to NAN reporting.

We good with this one?

--Aaron

>>
>> -Tom
>>
>> > +            [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
>> > +        ]
>> >      }
>> >  }
>> >
>> > --
>> > 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