From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58148) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZeOp4-0001wE-Iw for qemu-devel@nongnu.org; Tue, 22 Sep 2015 10:45:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZeOp1-00078I-Qt for qemu-devel@nongnu.org; Tue, 22 Sep 2015 10:45:34 -0400 Received: from mail-io0-x22c.google.com ([2607:f8b0:4001:c06::22c]:35358) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZeOp1-00077q-NS for qemu-devel@nongnu.org; Tue, 22 Sep 2015 10:45:31 -0400 Received: by ioiz6 with SMTP id z6so16726967ioi.2 for ; Tue, 22 Sep 2015 07:45:31 -0700 (PDT) Sender: Richard Henderson References: <1442621006-4231-1-git-send-email-gang.chen.5i5j@gmail.com> <55FCC9B8.1030606@twiddle.net> From: Richard Henderson Message-ID: <56016987.1000406@twiddle.net> Date: Tue, 22 Sep 2015 07:45:27 -0700 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH] target-tilegx: Implement v*add and v*sub instructions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Chen Gang , gang.chen.5i5j@gmail.com, peter.maydell@linaro.org Cc: qemu-devel@nongnu.org On 09/21/2015 10:54 PM, Chen Gang wrote: > On 2015年09月19日 10:34, Richard Henderson wrote: >> >> There's a trick for this that's more efficient for 4 or more elements >> per vector (i.e. good for v2 and v1, but not v4): >> >> a + b = (a & 0x7f7f7f7f) + (b & 0x7f7f7f7f)) ^ ((a ^ b) & 0x80808080) >> >> a - b = (a | 0x80808080) - (b & 0x7f7f7f7f)) ^ ((a ^ ~b) & 0x80808080) >> > > For me, we need use "(a ^ b) & 0x80..." instead of "(a ^ ~b) & 0x80...". No. What you did wrong was not use (a | 0x80808080). r~