On 2021-06-22 8:08 a.m., Lazar, Lijo wrote:
> [Public]
> 
> AFAIK, that expression is legal (some code analyzer may warn on value of 
> 4*max_wgp_per_sh); similar kind is used in rotate shift operations.

The default type for constants in C is int, so 0xffffffff is a 32-bit signed 
integer.

The C99 specification lists this under J.2 Undefined behavior:

— An expression having signed promoted type is left-shifted and either the 
value of the
 expression is negative or the result of shifting would be not be representable 
in the
 promoted type (6.5.7).

So it would be safer to make it unsigned: 0xffffffffu (or just ~0u).


> -----Original Message-----
> From: Quan, Evan <[email protected]> 
> Sent: Tuesday, June 22, 2021 7:56 AM
> To: Lazar, Lijo <[email protected]>; [email protected]
> Cc: Deucher, Alexander <[email protected]>
> Subject: RE: [PATCH V3 1/7] drm/amdgpu: correct tcp harvest setting
> 
> [AMD Official Use Only]
> 
> Thanks Lijo.
> However, I'm not quite sure whether " 0xffffffff << (4 * max_wgp_per_sh);" is 
> a valid expression since it kind of triggers some overflow.
> Can that work for non-x86 platform or even work reliably for x86 platform?



-- 
Earthling Michel Dänzer               |               https://redhat.com
Libre software enthusiast             |             Mesa and X developer
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to