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:34:56 PST 2011


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.

> 
> 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?  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.

Otherwise it looks fine.

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