On Oct 8, 2007, at 1:48 PM, Dan Gohman wrote:

> Author: djg
> Date: Mon Oct  8 15:48:12 2007
> New Revision: 42765
>
> URL: http://llvm.org/viewvc/llvm-project?rev=42765&view=rev
> Log:
> These two tests now require only three multiply instructions,
> instead of four.

Very nice Dan!  I think this completes the "Add a MUL2U and MUL2S  
nodes to represent a multiply that returns both the.." note in X86/ 
README.txt.

Among other nice things, we now compile:

long long test(int X, int Y) { return (long long)X*Y; }

into:

_test:
         movl    4(%esp), %ecx
         movl    8(%esp), %eax
         imull   %ecx
         ret

instead of:

_test:
         pushl   %esi
         movl    8(%esp), %ecx
         movl    12(%esp), %esi
         movl    %esi, %eax
         imull   %ecx
         imull   %ecx, %esi
         movl    %esi, %eax
         popl    %esi
         ret

Can you please update the readme and add regtests for the cases it  
mentions?

Thanks for tackling this!

-Chris
_______________________________________________
llvm-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to