Request for reviews (L): 6340864: Implement vectorization optimizations in hotspot-server

Vladimir Kozlov vladimir.kozlov at
Thu Jul 26 18:17:10 PDT 2012

I updated webrev:

Added new regression tests.
Removed mach nodes for vector logical right shift for short[] because it 
produces incorrect java results for signed shorts. Java code converts a short 
value into integer with sign extension, shift integer value and then store low 
16 bits.
Fixed narrowed type propagation for vector elements: determine a narrow type of 
arithmetic operations by propagating the type of memory operations (stores). 
Don't use narrow type from IGVN because it could be more narrow than actual 
type: AndI(LoadI(), 0xFF) gives incorrect Byte velt_type for AndI result. Byte 
velt type will be correct only if it is used by a byte store operation: 
StoreB(AndI(LoadI(), 0xFF)).


Vladimir Kozlov wrote:
> 6340864: Implement vectorization optimizations in hotspot-server
> Added asm encoding and mach nodes for vector arithmetic instructions on 
> x86.
> Added new emit_*_arith() helper methods to simplify code for asm encoding.
> Added few missing parts in superword code which already supports vector 
> arithmetic (added code for vector MulI and URShiftI).
> Note: these changes did not implement vectorization to get a sum of 
> array's elements as bug's description asked - it needs more work.
> Tested with compiler and java/lang regression tests, CTW and also 
> provided vector arithmetic tests. I am converting those tests into 
> compiler regression tests which will be included into these changes.
> Thanks,
> Vladimir

More information about the hotspot-compiler-dev mailing list