Re: Choosing the best multiplication

2010-09-24 Thread Paulo J. Matos
pocma...@gmail.com (Paulo J. Matos) writes: > Paolo Bonzini writes: > > No, I am not actually. I initially thought it wouldn't work. > However, it makes sense. I just implemented it and it doesn work. > I meant, it _does_ work! :) -- PMatos

Re: Choosing the best multiplication

2010-09-24 Thread Paulo J. Matos
Paolo Bonzini writes: > On 09/24/2010 10:10 AM, Paulo J. Matos wrote: > > You can use mul3 for non-widening multiplication, which would > always use smult, and {u,}mul3 for widening > multiplication which has to use smult or umult for correctness. > That's how i386 chooses between multi-operand i

Re: Choosing the best multiplication

2010-09-24 Thread Paolo Bonzini
On 09/24/2010 10:10 AM, Paulo J. Matos wrote: The rules currently take the shape: , | (define_expand "umulqihi3" ` These rules were created in gcc42 and the idea was that we can use smult instead of umult whenever RAH (MSW of the result) is not used afterwards. The 2nd argument of make_m

Choosing the best multiplication

2010-09-24 Thread Paulo J. Matos
Hello, Our unsigned multiplication uses 2 words, while our signed multiplication uses 1. So, we are trying to use smult for an unsigned multiplication whenever the following multiplication disregard the MSW of the result. The rules currently take the shape: , | (define_expand "umulqihi3" |