diff options
Diffstat (limited to 'contrib/gcc/expmed.c')
-rw-r--r-- | contrib/gcc/expmed.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/contrib/gcc/expmed.c b/contrib/gcc/expmed.c index 6a0d353..b30301e 100644 --- a/contrib/gcc/expmed.c +++ b/contrib/gcc/expmed.c @@ -2616,16 +2616,12 @@ synth_mult (struct algorithm *alg_out, unsigned HOST_WIDE_INT t, do_alg_addsub_t_m2: for (w = 1; (w & t) != 0; w <<= 1) ; - /* If T was -1, then W will be zero after the loop. This is another - case where T ends with ...111. Handling this with (T + 1) and - subtract 1 produces slightly better code and results in algorithm - selection much faster than treating it like the ...0111 case - below. */ - if (w == 0 - || (w > 2 + /* APPLE LOCAL begin 7744816 DImode multiply by 0xffffffffULL */ + if (w > 2 /* Reject the case where t is 3. Thus we prefer addition in that case. */ - && t != 3)) + && t != 3) + /* APPLE LOCAL end 7744816 DImode multiply by 0xffffffffULL */ { /* T ends with ...111. Multiply by (T + 1) and subtract 1. */ |