Re: microblaze unroll loops optimization

2013-01-17 Thread David Holsgrove
Hi Richard, On 16 January 2013 06:58, Richard Henderson wrote: > > You could, however, use two CCmodes for the result of the compares: > > (set (reg:CC r) (compare:CC (reg:SI x) (reg:SI y))) > => cmp r, x, y > > (set (reg:CCU r) (compare:CCU (reg:SI x) (reg:SI y))) > => cmpu r, x, y > > a

Re: microblaze unroll loops optimization

2013-01-15 Thread Richard Henderson
On 01/11/2013 07:20 PM, Michael Eager wrote: I still think it's a bit odd. Other targets use the comparison operator (e.g., lt, ge, etc.). Microblaze should as well. Microblaze can't use the raw comparison operator because of how the results of the cmp{,u} instructions are defined, especially

Re: microblaze unroll loops optimization

2013-01-11 Thread Michael Eager
On 01/11/2013 06:53 PM, David Holsgrove wrote: Hi all, I believe the decision to use UNSPEC_CMP and UNSPEC_CMPU for microblaze compare instructions stems from the conversation in this thread from 2009; http://gcc.gnu.org/ml/gcc/2009-12/msg00283.html Thanks for reminding me. I'd forgotten tha

Re: microblaze unroll loops optimization

2013-01-11 Thread David Holsgrove
Hi all, I believe the decision to use UNSPEC_CMP and UNSPEC_CMPU for microblaze compare instructions stems from the conversation in this thread from 2009; http://gcc.gnu.org/ml/gcc/2009-12/msg00283.html This makes sense, because if I use code attributes and iterators to extend the compare insn a