mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-26 08:49:02 +00:00
conversions: Use volatile qualifier to prevent optimizations (#1399)
Use volatile to prevent clang optimizations, fix int2float
This commit is contained in:
committed by
GitHub
parent
bbc7ccfc58
commit
0f4dc3166c
@@ -696,7 +696,8 @@ static void int2short( void *out, void *in){ ((cl_short*) out)[0] = ((cl_int*) i
|
|||||||
static void int2uint( void *out, void *in){ ((cl_uint*) out)[0] = ((cl_int*) in)[0]; }
|
static void int2uint( void *out, void *in){ ((cl_uint*) out)[0] = ((cl_int*) in)[0]; }
|
||||||
static void int2float( void *out, void *in)
|
static void int2float( void *out, void *in)
|
||||||
{
|
{
|
||||||
cl_int l = ((cl_int*) in)[0];
|
// Use volatile to prevent optimization by Clang compiler
|
||||||
|
volatile cl_int l = ((cl_int *)in)[0];
|
||||||
((float*) out)[0] = (l == 0 ? 0.0f : (float) l); // Per IEEE-754-2008 5.4.1, 0's always convert to +0.0
|
((float*) out)[0] = (l == 0 ? 0.0f : (float) l); // Per IEEE-754-2008 5.4.1, 0's always convert to +0.0
|
||||||
}
|
}
|
||||||
static void int2double( void *out, void *in)
|
static void int2double( void *out, void *in)
|
||||||
|
|||||||
Reference in New Issue
Block a user