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-11 Thread David Holsgrove
LT: return "cmp\tr18,%z2,%z1\;blti%?\tr18,%3 #LT"; case GTU:return "cmpu\tr18,%z1,%z2\;blti%?\tr18,%3 #GTU"; case LEU:return "cmpu\tr18,%z1,%z2\;bgei%?\tr18,%3"; case GEU:return "cmpu\tr18,%z2,%z1\;bgei%?\tr18,%3";

microblaze unroll loops optimization

2013-01-07 Thread David Holsgrove
Loop unrolling (-funroll-loops) for microblaze is ineffectual on the gcc 4.6/4.7/4.8 branches. This previously worked on an out of tree gcc 4.1.2, and I believe the relevant diff to be the use of UNSPEC_CMP and UNSPEC_CMPU to create two unique instructions for signed_compare and unsigned_compare i