[Mesa-dev] [PATCH 2/3] mesa: move _mesa_half_is_negative() to half_float.h

Brian Paul brianp at vmware.com
Mon Oct 9 21:33:46 UTC 2017


On 10/09/2017 03:24 PM, Ilia Mirkin wrote:
> On Mon, Oct 9, 2017 at 5:07 PM, Roland Scheidegger <sroland at vmware.com> wrote:
>> Am 09.10.2017 um 22:56 schrieb Brian Paul:
>>> ---
>>>   src/mesa/main/imports.h | 6 ------
>>>   src/util/half_float.h   | 8 ++++++++
>>>   2 files changed, 8 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h
>>> index a4964a3..51fa72c 100644
>>> --- a/src/mesa/main/imports.h
>>> +++ b/src/mesa/main/imports.h
>>> @@ -333,12 +333,6 @@ _mesa_bitcount_64(uint64_t n);
>>>   #endif
>>>
>>>
>>> -static inline bool
>>> -_mesa_half_is_negative(GLhalfARB h)
>>> -{
>>> -   return h & 0x8000;
>>> -}
>>> -
>>>   extern int
>>>   _mesa_snprintf( char *str, size_t size, const char *fmt, ... ) PRINTFLIKE(3, 4);
>>>
>>> diff --git a/src/util/half_float.h b/src/util/half_float.h
>>> index 64f2042..35f27c8 100644
>>> --- a/src/util/half_float.h
>>> +++ b/src/util/half_float.h
>>> @@ -25,6 +25,7 @@
>>>   #ifndef _HALF_FLOAT_H_
>>>   #define _HALF_FLOAT_H_
>>>
>>> +#include <stdbool.h>
>>>   #include <stdint.h>
>>>
>>>   #ifdef __cplusplus
>>> @@ -34,6 +35,13 @@ extern "C" {
>>>   uint16_t _mesa_float_to_half(float val);
>>>   float _mesa_half_to_float(uint16_t val);
>>>
>>> +static inline bool
>>> +_mesa_half_is_negative(uint16_t h)
>>> +{
>>> +   return h & 0x8000;
>>> +}
>> Not that this is a new issue, but isn't this pretty problematic and should
>> rather be return !!(h & 0x8000) or something like that?
>
> That should be implied by the C99 _Bool return type (hopefully bool is
> typecast to that and not something horrible like char).

Hmm, yeah, with gcc -O3 at least, the same asm code is generated 
with/without !!(h & 0x8000).

-Brian




More information about the mesa-dev mailing list