Request for reviews (M): 7121648: Use 3-operands SIMD instructions on x86 with AVX

Tom Rodriguez tom.rodriguez at oracle.com
Thu Dec 15 11:54:03 PST 2011


On Dec 15, 2011, at 11:42 AM, Vladimir Kozlov wrote:

> Thank you, Tom
> 
> Tom Rodriguez wrote:
>> On Dec 15, 2011, at 10:36 AM, Vladimir Kozlov wrote:
>>> http://cr.openjdk.java.net/~kvn/7121648/webrev
>>> 
>>> 7121648: Use 3-operands SIMD instructions on x86 with AVX
>> adlc.make:
>> Can you use $(Platform_arch) instead of $(ARCH)?  I know it's the same but names are more obviously parallel.
> 
> Done.
> 
>>> VEX prefix converts legacy SSE instructions into 3 operands instructions. Use such instructions in C2 generated code for machines with AVX:
>>> 
>>> vaddsd   XMM2, XMM0, [RSI + #8 + RCX << #3]
>>> 
>>> I also did go ahead and created x86.ad file to collect common 32- and 64-bit mach instructions definitions.
>> Instead of duplicating regX and regXD why not just rename regX and refXD to regF and regD and come up with a new name for the FPU regs.  Maybe regFPRF and regFPRD? 
> 
> I am fine with renaming FPU registers to regFPRF and regFPRD but it will be a lot places in x86_32.ad. If you fine with it I will do renaming.

I just think if we're going to start down this path I want to make it more consistent instead of papering over the difference.  So I'm ok with the changes since for the most part it will be pure text replacement.  You'll probably need to rename things like immXF and immF to be consistent.

tom

> 
>> Also can you correct the formatting in the new file to have the %{ on the same line?  And remove the // XXX's after the ins_cost.
> 
> Done.
> 
>> Otherwise it looks fine.
> 
> Thanks,
> Vladimir
> 
>> tom
>>> There is slight improvement in performance on AVX machine (full result in bug report):
>>> 
>>> Benchmark        Samples       Mean     Stdev   %Diff    P   Significant
>>> scimark_small        20     1031.87      4.68    2.85 0.000          Yes
>>>   LU                 20     1966.82     21.36    6.18 0.000          Yes
>>>   FFT                20      658.28     10.33    4.91 0.000          Yes
>>>   Monte              20      545.31      2.93   -0.37 0.179            *
>>>   SOR                20      994.96      0.67   -0.00 0.910            *
>>>   Sparse             20      993.99      1.49   -0.02 0.629            *
>>> 
>>> Thanks,
>>> Vladimir



More information about the hotspot-compiler-dev mailing list