[Piglit] [PATCH] arb_gpu_shader5: Use array sizing to catch bad constant folding.

Paul Berry stereotype441 at gmail.com
Mon Aug 26 22:31:20 PDT 2013


On 26 August 2013 22:26, Ian Romanick <idr at freedesktop.org> wrote:

> On 08/23/2013 04:32 PM, Matt Turner wrote:
>
>> The GLSL spec doesn't guarantee that a linking error won't happen.
>> ---
>>   .../built-in-functions/const-**bitCount.shader_test  | 40
>> ++++++++--------------
>>   .../const-bitfieldExtract.**shader_test              | 23 +++++--------
>>   .../const-bitfieldInsert.**shader_test               | 20 ++++-------
>>   .../const-bitfieldReverse.**shader_test              | 32
>> +++++++----------
>>   .../built-in-functions/const-**findLSB.shader_test   | 40
>> ++++++++--------------
>>   .../built-in-functions/const-**findMSB.shader_test   | 26
>> +++++---------
>>   6 files changed, 66 insertions(+), 115 deletions(-)
>>
>> diff --git a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**const-bitCount.shader_test
>> b/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitCount.shader_test
>> index 7ba0c91..dfbc224 100644
>> --- a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitCount.shader_test
>> +++ b/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitCount.shader_test
>> @@ -12,7 +12,7 @@ void main() {
>>   [fragment shader]
>>   #extension GL_ARB_gpu_shader5 : enable
>>
>> -void bad_constant_folding();
>> +#define STATIC_ASSERT(cond) { float array[(cond) ? -1 : 1]; }
>>
>
> Have you tried this on other drivers?  I've seen many cases where things
> that seem like the should be errors get optimized out before the error gets
> generated.  While this is a known "bug" in those implementations, it's
> generally better to test the thing you're trying to test instead of testing
> something else with your test when you're testing a test. Sorry, I got
> carried away there. :)
>
> I can try it tomorrow on NVIDIA, if you like.


FWIW, in my experience NVIDIA fails most of these kinds of constant folding
tests, because it is only capable of evaluating the simplest built-in
functions at compile time.  I wouldn't hold your breath for this test, or
any variant of it, passing on NVIIDA.


>
>
>    out vec4 color;
>>
>> @@ -21,30 +21,20 @@ void main()
>>         /* Green if both pass. */
>>         color = vec4(0.0, 1.0, 0.0, 1.0);
>>
>> -       if (ivec4(0) != bitCount(ivec4(0)))
>> -               bad_constant_folding();
>> -       else if (ivec4(0) != bitCount(uvec4(0u)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(1) != bitCount(ivec4(1, 2, 4, 8)))
>> -               bad_constant_folding();
>> -       else if (ivec4(1) != bitCount(uvec4(1u, 2u, 4u, 8u)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(1, 2, 3, 4) != bitCount(ivec4(1, 3, 7, 15)))
>> -               bad_constant_folding();
>> -       else if (ivec4(1, 2, 3, 4) != bitCount(uvec4(1u, 3u, 7u, 15u)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(6, 6, 3, 5) != bitCount(ivec4(783, 111, 385, 484)))
>> -               bad_constant_folding();
>> -       else if (ivec4(6, 6, 3, 5) != bitCount(uvec4(783u, 111u, 385u,
>> 484u)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(32, 31, 31, 30) != bitCount(ivec4(-1, -2, -3, -4)))
>> -               bad_constant_folding();
>> -       else if (ivec4(32, 31, 31, 30) != bitCount(uvec4(0xFFFFFFFFu,
>> 0xFFFFFFFEu, 0xFFFFFFFDu, 0xFFFFFFFCu)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(0) != bitCount(ivec4(0)));
>> +       STATIC_ASSERT(ivec4(0) != bitCount(uvec4(0u)));
>> +
>> +       STATIC_ASSERT(ivec4(1) != bitCount(ivec4(1, 2, 4, 8)));
>> +       STATIC_ASSERT(ivec4(1) != bitCount(uvec4(1u, 2u, 4u, 8u)));
>> +
>> +       STATIC_ASSERT(ivec4(1, 2, 3, 4) != bitCount(ivec4(1, 3, 7, 15)));
>> +       STATIC_ASSERT(ivec4(1, 2, 3, 4) != bitCount(uvec4(1u, 3u, 7u,
>> 15u)));
>> +
>> +       STATIC_ASSERT(ivec4(6, 6, 3, 5) != bitCount(ivec4(783, 111, 385,
>> 484)));
>> +       STATIC_ASSERT(ivec4(6, 6, 3, 5) != bitCount(uvec4(783u, 111u,
>> 385u, 484u)));
>> +
>> +       STATIC_ASSERT(ivec4(32, 31, 31, 30) != bitCount(ivec4(-1, -2, -3,
>> -4)));
>> +       STATIC_ASSERT(ivec4(32, 31, 31, 30) !=
>> bitCount(uvec4(0xFFFFFFFFu, 0xFFFFFFFEu, 0xFFFFFFFDu, 0xFFFFFFFCu)));
>>   }
>>
>>   [vertex data]
>> diff --git a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitfieldExtract.shader_**test b/tests/spec/arb_gpu_shader5/**
>> execution/built-in-functions/**const-bitfieldExtract.shader_**test
>> index ed6b988..8351b78 100644
>> --- a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitfieldExtract.shader_**test
>> +++ b/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitfieldExtract.shader_**test
>> @@ -12,7 +12,7 @@ void main() {
>>   [fragment shader]
>>   #extension GL_ARB_gpu_shader5 : enable
>>
>> -void bad_constant_folding();
>> +#define STATIC_ASSERT(cond) { float array[(cond) ? -1 : 1]; }
>>
>>   out vec4 color;
>>
>> @@ -21,26 +21,19 @@ void main()
>>         /* Green if both pass. */
>>         color = vec4(0.0, 1.0, 0.0, 1.0);
>>
>> -       if (ivec4(0) != bitfieldExtract(ivec4(**2147483647, 15, 7, 3),
>> 0, 0))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(0) != bitfieldExtract(ivec4(**2147483647,
>> 15, 7, 3), 0, 0));
>>
>> -       if (uvec4(0u) != bitfieldExtract(uvec4(**0xFFFFFFFFu, 15u, 7u,
>> 3u), 0, 0))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(uvec4(0u) != bitfieldExtract(uvec4(**0xFFFFFFFFu,
>> 15u, 7u, 3u), 0, 0));
>>
>> -       if (ivec4(-1) != bitfieldExtract(ivec4(1), 0, 1))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(-1) != bitfieldExtract(ivec4(1), 0, 1));
>>
>> -       if (uvec4(1u) != bitfieldExtract(uvec4(1u), 0, 1))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(uvec4(1u) != bitfieldExtract(uvec4(1u), 0, 1));
>>
>> -       if (ivec4(1, -1, -1, 1) != bitfieldExtract(ivec4(1, 3, 3, 1), 0,
>> 2))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(1, -1, -1, 1) != bitfieldExtract(ivec4(1, 3,
>> 3, 1), 0, 2));
>>
>> -       if (ivec4(-1, 0, 1, 3) != bitfieldExtract(ivec4(983040, 61440,
>> 114688, 229376), 16, 4))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(-1, 0, 1, 3) != bitfieldExtract(ivec4(983040,
>> 61440, 114688, 229376), 16, 4));
>>
>> -       if (uvec4(0xFu, 0x0u, 0x1u, 0x3u) != bitfieldExtract(uvec4(**0x000F0000u,
>> 0x0000F000u, 0x0001C000u, 0x00038000u), 16, 4))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(uvec4(0xFu, 0x0u, 0x1u, 0x3u) !=
>> bitfieldExtract(uvec4(**0x000F0000u, 0x0000F000u, 0x0001C000u,
>> 0x00038000u), 16, 4));
>>   }
>>
>>   [vertex data]
>> diff --git a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitfieldInsert.shader_**test b/tests/spec/arb_gpu_shader5/**
>> execution/built-in-functions/**const-bitfieldInsert.shader_**test
>> index 228e5db..9ac492b 100644
>> --- a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitfieldInsert.shader_**test
>> +++ b/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitfieldInsert.shader_**test
>> @@ -12,7 +12,7 @@ void main() {
>>   [fragment shader]
>>   #extension GL_ARB_gpu_shader5 : enable
>>
>> -void bad_constant_folding();
>> +#define STATIC_ASSERT(cond) { float array[(cond) ? -1 : 1]; }
>>
>>   out vec4 color;
>>
>> @@ -21,23 +21,17 @@ void main()
>>         /* Green if both pass. */
>>         color = vec4(0.0, 1.0, 0.0, 1.0);
>>
>> -       if (ivec4(42, 56, 72, 97) != bitfieldInsert(ivec4(42, 56, 72,
>> 97), ivec4(2147483647, 15, 7, 3), 0, 0))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(42, 56, 72, 97) != bitfieldInsert(ivec4(42,
>> 56, 72, 97), ivec4(2147483647, 15, 7, 3), 0, 0));
>>
>> -       if (uvec4(42u, 56u, 72u, 97u) != bitfieldInsert(uvec4(42u, 56u,
>> 72u, 97u), uvec4(0xFFFFFFFFu, 15u, 7u, 3u), 0, 0))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(uvec4(42u, 56u, 72u, 97u) !=
>> bitfieldInsert(uvec4(42u, 56u, 72u, 97u), uvec4(0xFFFFFFFFu, 15u, 7u, 3u),
>> 0, 0));
>>
>> -       if (ivec4(589839, 262159, 65551, 15) !=
>> bitfieldInsert(ivec4(983055), ivec4(9, 4, 1, 0), 16, 4))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(589839, 262159, 65551, 15) !=
>> bitfieldInsert(ivec4(983055), ivec4(9, 4, 1, 0), 16, 4));
>>
>> -       if (uvec4(0x0009000Fu, 0x0004000Fu, 0x0001000Fu, 0x0000000Fu) !=
>> bitfieldInsert(uvec4(**0x000F000Fu), uvec4(0x9u, 0x4u, 0x1u, 0x0u), 16,
>> 4))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(uvec4(**0x0009000Fu, 0x0004000Fu, 0x0001000Fu,
>> 0x0000000Fu) != bitfieldInsert(uvec4(**0x000F000Fu), uvec4(0x9u, 0x4u,
>> 0x1u, 0x0u), 16, 4));
>>
>> -       if (ivec4(917519, 589839, 262159, 65551) !=
>> bitfieldInsert(ivec4(15), ivec4(14, 9, 4, 1), 16, 4))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(917519, 589839, 262159, 65551) !=
>> bitfieldInsert(ivec4(15), ivec4(14, 9, 4, 1), 16, 4));
>>
>> -       if (uvec4(0x000E000Fu, 0x0009000Fu, 0x0004000Fu, 0x0001000Fu) !=
>> bitfieldInsert(uvec4(0xFu), uvec4(0xEu, 0x9u, 0x4u, 0x1u), 16, 4))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(uvec4(**0x000E000Fu, 0x0009000Fu, 0x0004000Fu,
>> 0x0001000Fu) != bitfieldInsert(uvec4(0xFu), uvec4(0xEu, 0x9u, 0x4u, 0x1u),
>> 16, 4));
>>   }
>>
>>   [vertex data]
>> diff --git a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitfieldReverse.shader_**test b/tests/spec/arb_gpu_shader5/**
>> execution/built-in-functions/**const-bitfieldReverse.shader_**test
>> index 28c6621..60caf2a 100644
>> --- a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitfieldReverse.shader_**test
>> +++ b/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-bitfieldReverse.shader_**test
>> @@ -12,7 +12,7 @@ void main() {
>>   [fragment shader]
>>   #extension GL_ARB_gpu_shader5 : enable
>>
>> -void bad_constant_folding();
>> +#define STATIC_ASSERT(cond) { float array[(cond) ? -1 : 1]; }
>>
>>   out vec4 color;
>>
>> @@ -21,25 +21,17 @@ void main()
>>         /* Green if both pass. */
>>         color = vec4(0.0, 1.0, 0.0, 1.0);
>>
>> -       if (ivec4(0, -1, -1, 0) != bitfieldReverse(ivec4(0, -1, -1, 0)))
>> -               bad_constant_folding();
>> -       else if (uvec4(0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0u) !=
>> bitfieldReverse(uvec4(0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0u)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(-2147483648, 1073741824, 536870912, 268435456) !=
>> bitfieldReverse(ivec4(1, 2, 4, 8)))
>> -               bad_constant_folding();
>> -       else if (uvec4(0x80000000u, 0x40000000u, 0x20000000u,
>> 0x10000000u) != bitfieldReverse(uvec4(1u, 2u, 4u, 8u)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(1, 2, 4, 8) != bitfieldReverse(ivec4(-**2147483648,
>> 1073741824, 536870912, 268435456)))
>> -               bad_constant_folding();
>> -       else if (uvec4(1u, 2u, 4u, 8u) != bitfieldReverse(uvec4(**0x80000000u,
>> 0x40000000u, 0x20000000u, 0x10000000u)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(783, 15, 65536, 384) != bitfieldReverse(ivec4(-**255852544,
>> -268435456, 32768, 25165824)))
>> -               bad_constant_folding();
>> -       else if (uvec4(0xF0C00000u, 0xF0000000u, 0x00008000u,
>> 0x00000180u) != bitfieldReverse(uvec4(783u, 15u, 0x00010000u, 0x01800000u)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(0, -1, -1, 0) != bitfieldReverse(ivec4(0, -1,
>> -1, 0)));
>> +       STATIC_ASSERT(uvec4(0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0u) !=
>> bitfieldReverse(uvec4(0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0u)));
>> +
>> +       STATIC_ASSERT(ivec4(-**2147483648, 1073741824, 536870912,
>> 268435456) != bitfieldReverse(ivec4(1, 2, 4, 8)));
>> +       STATIC_ASSERT(uvec4(**0x80000000u, 0x40000000u, 0x20000000u,
>> 0x10000000u) != bitfieldReverse(uvec4(1u, 2u, 4u, 8u)));
>> +
>> +       STATIC_ASSERT(ivec4(1, 2, 4, 8) != bitfieldReverse(ivec4(-**
>> 2147483648, 1073741824, 536870912, 268435456)));
>> +       STATIC_ASSERT(uvec4(1u, 2u, 4u, 8u) != bitfieldReverse(uvec4(**0x80000000u,
>> 0x40000000u, 0x20000000u, 0x10000000u)));
>> +
>> +       STATIC_ASSERT(ivec4(783, 15, 65536, 384) !=
>> bitfieldReverse(ivec4(-**255852544, -268435456, 32768, 25165824)));
>> +       STATIC_ASSERT(uvec4(**0xF0C00000u, 0xF0000000u, 0x00008000u,
>> 0x00000180u) != bitfieldReverse(uvec4(783u, 15u, 0x00010000u,
>> 0x01800000u)));
>>   }
>>
>>   [vertex data]
>> diff --git a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**const-findLSB.shader_test
>> b/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-findLSB.shader_test
>> index b62df92..742a0d6 100644
>> --- a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-findLSB.shader_test
>> +++ b/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-findLSB.shader_test
>> @@ -12,7 +12,7 @@ void main() {
>>   [fragment shader]
>>   #extension GL_ARB_gpu_shader5 : enable
>>
>> -void bad_constant_folding();
>> +#define STATIC_ASSERT(cond) { float array[(cond) ? -1 : 1]; }
>>
>>   out vec4 color;
>>
>> @@ -21,30 +21,20 @@ void main()
>>         /* Green if both pass. */
>>         color = vec4(0.0, 1.0, 0.0, 1.0);
>>
>> -       if (ivec4(-1) != findLSB(ivec4(0)))
>> -               bad_constant_folding();
>> -       else if (ivec4(-1) != findLSB(uvec4(0u)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(0, 1, 0, 2) != findLSB(ivec4(1, 2, 3, 4)))
>> -               bad_constant_folding();
>> -       else if (ivec4(0, 1, 0, 2) != findLSB(uvec4(1u, 2u, 3u, 4u)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(10, 9, 8, 7) != findLSB(ivec4(1024, 512, 256, 128)))
>> -               bad_constant_folding();
>> -       else if (ivec4(10, 9, 8, 7) != findLSB(uvec4(1024u, 512u, 256u,
>> 128u)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(0, 1, 0, 2) != findLSB(ivec4(-1, -2, -3, -4)))
>> -               bad_constant_folding();
>> -       else if (ivec4(0, 1, 0, 2) != findLSB(uvec4(0xFFFFFFFFu,
>> 0xFFFFFFFEu, 0xFFFFFFFDu, 0xFFFFFFFCu)))
>> -               bad_constant_folding();
>> -
>> -       if (ivec4(31, 30, 29, 28) != findLSB(ivec4(-2147483648,
>> 1073741824, 536870912, 268435456)))
>> -               bad_constant_folding();
>> -       else if (ivec4(31, 30, 29, 28) != findLSB(uvec4(0x80000000u,
>> 0x40000000u, 0x20000000u, 0x10000000u)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(-1) != findLSB(ivec4(0)));
>> +       STATIC_ASSERT(ivec4(-1) != findLSB(uvec4(0u)));
>> +
>> +       STATIC_ASSERT(ivec4(0, 1, 0, 2) != findLSB(ivec4(1, 2, 3, 4)));
>> +       STATIC_ASSERT(ivec4(0, 1, 0, 2) != findLSB(uvec4(1u, 2u, 3u,
>> 4u)));
>> +
>> +       STATIC_ASSERT(ivec4(10, 9, 8, 7) != findLSB(ivec4(1024, 512, 256,
>> 128)));
>> +       STATIC_ASSERT(ivec4(10, 9, 8, 7) != findLSB(uvec4(1024u, 512u,
>> 256u, 128u)));
>> +
>> +       STATIC_ASSERT(ivec4(0, 1, 0, 2) != findLSB(ivec4(-1, -2, -3,
>> -4)));
>> +       STATIC_ASSERT(ivec4(0, 1, 0, 2) != findLSB(uvec4(0xFFFFFFFFu,
>> 0xFFFFFFFEu, 0xFFFFFFFDu, 0xFFFFFFFCu)));
>> +
>> +       STATIC_ASSERT(ivec4(31, 30, 29, 28) != findLSB(ivec4(-2147483648,
>> 1073741824, 536870912, 268435456)));
>> +       STATIC_ASSERT(ivec4(31, 30, 29, 28) != findLSB(uvec4(0x80000000u,
>> 0x40000000u, 0x20000000u, 0x10000000u)));
>>   }
>>
>>   [vertex data]
>> diff --git a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**const-findMSB.shader_test
>> b/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-findMSB.shader_test
>> index fec20f1..ef875e6 100644
>> --- a/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-findMSB.shader_test
>> +++ b/tests/spec/arb_gpu_shader5/**execution/built-in-functions/**
>> const-findMSB.shader_test
>> @@ -12,7 +12,7 @@ void main() {
>>   [fragment shader]
>>   #extension GL_ARB_gpu_shader5 : enable
>>
>> -void bad_constant_folding();
>> +#define STATIC_ASSERT(cond) { float array[(cond) ? -1 : 1]; }
>>
>>   out vec4 color;
>>
>> @@ -21,29 +21,21 @@ void main()
>>         /* Green if both pass. */
>>         color = vec4(0.0, 1.0, 0.0, 1.0);
>>
>> -       if (ivec4(-1) != findMSB(ivec4(0, -1, -1, 0)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(-1) != findMSB(ivec4(0, -1, -1, 0)));
>>
>> -       if (ivec4(-1) != findMSB(uvec4(0u)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(-1) != findMSB(uvec4(0u)));
>>
>> -       if (ivec4(0, 1, 1, 2) != findMSB(ivec4(1, 2, 3, 4)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(0, 1, 1, 2) != findMSB(ivec4(1, 2, 3, 4)));
>>
>> -       if (ivec4(30, 29, 28, 27) != findMSB(ivec4(2147483647,
>> 1073741823, 536870911, 268435455)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(30, 29, 28, 27) != findMSB(ivec4(2147483647,
>> 1073741823, 536870911, 268435455)));
>>
>> -       if (ivec4(0, 1, 2, 3) != findMSB(ivec4(-2, -3, -5, -9)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(0, 1, 2, 3) != findMSB(ivec4(-2, -3, -5,
>> -9)));
>>
>> -       if (ivec4(30, 30, 29, 28) != findMSB(ivec4(-2147483648,
>> -1879048192, -1073741824, -536870912)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(30, 30, 29, 28) != findMSB(ivec4(-2147483648,
>> -1879048192, -1073741824, -536870912)));
>>
>> -       if (ivec4(0, 1, 1, 2) != findMSB(uvec4(1u, 2u, 3u, 4u)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(0, 1, 1, 2) != findMSB(uvec4(1u, 2u, 3u,
>> 4u)));
>>
>> -       if (ivec4(31, 30, 29, 28) != findMSB(uvec4(0xFFFFFFFFu,
>> 0x7FFFFFFFu, 0x3FFFFFFFu, 0x1FFFFFFFu)))
>> -               bad_constant_folding();
>> +       STATIC_ASSERT(ivec4(31, 30, 29, 28) != findMSB(uvec4(0xFFFFFFFFu,
>> 0x7FFFFFFFu, 0x3FFFFFFFu, 0x1FFFFFFFu)));
>>   }
>>
>>   [vertex data]
>>
>>
> ______________________________**_________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/**mailman/listinfo/piglit<http://lists.freedesktop.org/mailman/listinfo/piglit>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20130826/85a7142f/attachment-0001.html>


More information about the Piglit mailing list