[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-05-17 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #13 from Thomas Koenig --- Sorry, wrong PR for the comment.

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-05-17 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #12 from Thomas Koenig --- Created attachment 30141 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30141&action=edit Another patch that doesn't work... I tried to follow the advice in comment#9, but I hit a wall (again). With th

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-30 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 Thomas Koenig changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-30 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #10 from Thomas Koenig 2013-04-30 21:46:11 UTC --- Author: tkoenig Date: Tue Apr 30 21:45:13 2013 New Revision: 198476 URL: http://gcc.gnu.org/viewcvs?rev=198476&root=gcc&view=rev Log: 2013-04-30 Thomas Koenig

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-28 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #9 from Thomas Koenig 2013-04-28 13:34:08 UTC --- Author: tkoenig Date: Sun Apr 28 13:32:59 2013 New Revision: 198369 URL: http://gcc.gnu.org/viewcvs?rev=198369&root=gcc&view=rev Log: 2013-04-28 Thomas Koenig PR

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-27 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #8 from Thomas Koenig 2013-04-27 23:19:13 UTC --- While special-casing power, it might also make sense to translate 2**n to ishft(1,n).

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-27 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 Thomas Koenig changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed|

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-26 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #6 from Richard Biener 2013-04-26 09:16:41 UTC --- Note that for the (-1.0)**k case __builtin_powif (-1.0e+0, k) should be perfectly fine for the middle-end. _gfortran_pow_i4_i4 (-1, k) is of course unfortunate and should be o

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-26 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #5 from Tobias Burnus 2013-04-26 07:26:31 UTC --- (In reply to comment #3) > 1 - ISHFT(IAND(K,1),1) For the real version Jakub suspects that (k & 1) ? -1.0 : 1.0 is faster than the mod/convert to float/subtraction or the

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-26 Thread Joost.VandeVondele at mat dot ethz.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #4 from Joost VandeVondele 2013-04-26 07:12:04 UTC --- (In reply to comment #3) > As James Van Buskirk pointed out, the algorithm will fail if k < 0. note that in the case of k being a loop index, there will be pretty good r

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-26 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 --- Comment #3 from Tobias Burnus 2013-04-26 07:07:22 UTC --- As James Van Buskirk pointed out, the algorithm will fail if k < 0. Thus, he suggests, which gives the expected result: 1 - ISHFT(IAND(K,1),1)

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-25 Thread Joost.VandeVondele at mat dot ethz.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 Joost VandeVondele changed: What|Removed |Added CC||Joost.VandeVondele at mat

[Bug fortran/57071] Optimize (-1)**k to 1 - 2 * mod(K, 2)

2013-04-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57071 Tobias Burnus changed: What|Removed |Added CC||burnus at gcc dot gnu.org --- C