Mercurial > hg > truffle
comparison src/cpu/x86/vm/macroAssembler_x86.hpp @ 7477:038dd2875b94
8005419: Improve intrinsics code performance on x86 by using AVX2
Summary: use 256bit vpxor,vptest instructions in String.compareTo() and equals() intrinsics.
Reviewed-by: twisti
author | kvn |
---|---|
date | Tue, 08 Jan 2013 11:30:51 -0800 |
parents | 00af3a3a8df4 |
children | b30b3c2a0cf2 db9981fd3124 |
comparison
equal
deleted
inserted
replaced
7476:ffa87474d7a4 | 7477:038dd2875b94 |
---|---|
1009 Assembler::vpxor(dst, nds, src, vector256); | 1009 Assembler::vpxor(dst, nds, src, vector256); |
1010 else | 1010 else |
1011 Assembler::vxorpd(dst, nds, src, vector256); | 1011 Assembler::vxorpd(dst, nds, src, vector256); |
1012 } | 1012 } |
1013 | 1013 |
1014 // Simple version for AVX2 256bit vectors | |
1015 void vpxor(XMMRegister dst, XMMRegister src) { Assembler::vpxor(dst, dst, src, true); } | |
1016 void vpxor(XMMRegister dst, Address src) { Assembler::vpxor(dst, dst, src, true); } | |
1017 | |
1014 // Move packed integer values from low 128 bit to hign 128 bit in 256 bit vector. | 1018 // Move packed integer values from low 128 bit to hign 128 bit in 256 bit vector. |
1015 void vinserti128h(XMMRegister dst, XMMRegister nds, XMMRegister src) { | 1019 void vinserti128h(XMMRegister dst, XMMRegister nds, XMMRegister src) { |
1016 if (UseAVX > 1) // vinserti128h is available only in AVX2 | 1020 if (UseAVX > 1) // vinserti128h is available only in AVX2 |
1017 Assembler::vinserti128h(dst, nds, src); | 1021 Assembler::vinserti128h(dst, nds, src); |
1018 else | 1022 else |