From 67d3fd77d1572e46f537dea2fd4ded3ecfd7c202 Mon Sep 17 00:00:00 2001 From: Aart Bik Date: Fri, 31 Mar 2017 15:11:53 -0700 Subject: SIMD pavgb,w for x86/x86_64 Rationale: Break-out CL of ART Vectorizer. Enables fast halving add with rounding Bug: 34083438 Test: assembler_x86[_64]_test Change-Id: I09173376b803d671a6b05a33e630f45f778cea52 --- compiler/utils/x86/assembler_x86.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'compiler/utils/x86/assembler_x86.cc') diff --git a/compiler/utils/x86/assembler_x86.cc b/compiler/utils/x86/assembler_x86.cc index 5307dc09d9..9c934b7f39 100644 --- a/compiler/utils/x86/assembler_x86.cc +++ b/compiler/utils/x86/assembler_x86.cc @@ -1221,6 +1221,24 @@ void X86Assembler::por(XmmRegister dst, XmmRegister src) { } +void X86Assembler::pavgb(XmmRegister dst, XmmRegister src) { + AssemblerBuffer::EnsureCapacity ensured(&buffer_); + EmitUint8(0x66); + EmitUint8(0x0F); + EmitUint8(0xE0); + EmitXmmRegisterOperand(dst, src); +} + + +void X86Assembler::pavgw(XmmRegister dst, XmmRegister src) { + AssemblerBuffer::EnsureCapacity ensured(&buffer_); + EmitUint8(0x66); + EmitUint8(0x0F); + EmitUint8(0xE3); + EmitXmmRegisterOperand(dst, src); +} + + void X86Assembler::pcmpeqb(XmmRegister dst, XmmRegister src) { AssemblerBuffer::EnsureCapacity ensured(&buffer_); EmitUint8(0x66); -- cgit v1.2.3-59-g8ed1b