Re: PATCH: PR target/53416: Wrong code when optimising loop involving _rdrand32_step

2012-05-20 Thread Uros Bizjak
On Mon, May 21, 2012 at 12:56 AM, H.J. Lu wrote: >>> #include >>> >>>  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 (&n

Re: PATCH: PR target/53416: Wrong code when optimising loop involving _rdrand32_step

2012-05-20 Thread H.J. Lu
On Sun, May 20, 2012 at 12:03 PM, Uros Bizjak wrote: > On Sun, May 20, 2012 at 8:43 PM, Andrew Pinski wrote: > >> #include >> >>  int >>  main(int argc, char **argv) >>  { >>  unsigned int number = 0; >>  int result0, result1, result2, result3; >> >>  result0 = __builtin_ia32_rdrand32_step (&num

Re: PATCH: PR target/53416: Wrong code when optimising loop involving _rdrand32_step

2012-05-20 Thread Uros Bizjak
On Sun, May 20, 2012 at 8:43 PM, Andrew Pinski wrote: > #include > >  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); >  resu

Re: PATCH: PR target/53416: Wrong code when optimising loop involving _rdrand32_step

2012-05-20 Thread Andrew Pinski
On Sun, May 20, 2012 at 11:37 AM, H.J. Lu wrote: > On Sun, May 20, 2012 at 11:15 AM, Jakub Jelinek wrote: >> On Sun, May 20, 2012 at 10:37:13AM -0700, H.J. Lu wrote: >>> On Sun, May 20, 2012 at 10:19 AM, Jakub Jelinek wrote: >>> > On Sun, May 20, 2012 at 10:04:26AM -0700, H.J. Lu wrote: >>> >> r

Re: PATCH: PR target/53416: Wrong code when optimising loop involving _rdrand32_step

2012-05-20 Thread H.J. Lu
On Sun, May 20, 2012 at 11:15 AM, Jakub Jelinek wrote: > On Sun, May 20, 2012 at 10:37:13AM -0700, H.J. Lu wrote: >> On Sun, May 20, 2012 at 10:19 AM, Jakub Jelinek wrote: >> > On Sun, May 20, 2012 at 10:04:26AM -0700, H.J. Lu wrote: >> >> rdrand_1 must be marked with unspec_volatile since it ret

Re: PATCH: PR target/53416: Wrong code when optimising loop involving _rdrand32_step

2012-05-20 Thread Jakub Jelinek
On Sun, May 20, 2012 at 10:37:13AM -0700, H.J. Lu wrote: > On Sun, May 20, 2012 at 10:19 AM, Jakub Jelinek wrote: > > On Sun, May 20, 2012 at 10:04:26AM -0700, H.J. Lu wrote: > >> rdrand_1 must be marked with unspec_volatile since it returns > >> a different value every time.  OK for trunk, 4.7 an

Re: PATCH: PR target/53416: Wrong code when optimising loop involving _rdrand32_step

2012-05-20 Thread H.J. Lu
On Sun, May 20, 2012 at 10:19 AM, Jakub Jelinek wrote: > On Sun, May 20, 2012 at 10:04:26AM -0700, H.J. Lu wrote: >> rdrand_1 must be marked with unspec_volatile since it returns >> a different value every time.  OK for trunk, 4.7 and 4.6? > > A testcase for this would be nice (runtime is not poss

Re: PATCH: PR target/53416: Wrong code when optimising loop involving _rdrand32_step

2012-05-20 Thread Jakub Jelinek
On Sun, May 20, 2012 at 10:04:26AM -0700, H.J. Lu wrote: > rdrand_1 must be marked with unspec_volatile since it returns > a different value every time. OK for trunk, 4.7 and 4.6? A testcase for this would be nice (runtime is not possible, since the RNG in theory could return the same value twice