PATCH: PR target/53416: Wrong code when optimising loop involving _rdrand32_step
Uros Bizjak
ubizjak@gmail.com
Sun May 20 19:03:00 GMT 2012
On Sun, May 20, 2012 at 8:43 PM, Andrew Pinski <pinskia@gmail.com> wrote:
> #include <stdio.h>
>
> int
> main(int argc, char **argv)
> {
> unsigned int number = 0;
> int result0, result1, result2, result3;
>
> result0 = __builtin_ia32_rdrand32_step (&number);
> result1 = __builtin_ia32_rdrand32_step (&number);
> result2 = __builtin_ia32_rdrand32_step (&number);
> result3 = __builtin_ia32_rdrand32_step (&number);
> printf("%d: %d\n", result0, number);
> printf("%d: %d\n", result1, number);
> printf("%d: %d\n", result2, number);
> printf("%d: %d\n", result3, number);
> return 0;
> }
>
int test (void)
{
unsigned int number = 0;
int result0, result1, result2, result3;
result0 = __builtin_ia32_rdrand32_step (&number);
result1 = __builtin_ia32_rdrand32_step (&number);
result2 = __builtin_ia32_rdrand32_step (&number);
result3 = __builtin_ia32_rdrand32_step (&number);
return result0 + result1 +result2 + result3;;
}
This is the simplest, and also good test.
Uros.
More information about the Gcc-patches
mailing list