This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: PR target/53416: Wrong code when optimising loop involving _rdrand32_step
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.