From patchwork Mon Dec 18 17:17:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 122246 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp3103344qgn; Mon, 18 Dec 2017 09:22:15 -0800 (PST) X-Google-Smtp-Source: ACJfBosyeXO3J9hcXMcwjCWAd1LNrbUuVcpLOM1SF1rJO26QGEnuMr44s0OoPdex2L7pD6rhNLnG X-Received: by 10.129.158.71 with SMTP id v68mr398342ywg.201.1513617735195; Mon, 18 Dec 2017 09:22:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1513617735; cv=none; d=google.com; s=arc-20160816; b=FOTQrUveExIEefq3NLnOUn/GKOW3K7b2/CozJzfmVpl/OXHcnE0D8gzGwZIzinImYY 1EISGH+Ssc2cAvb3zXFjRP98DqR7iwIPI4mcZTuSwFkwuqMVDsGqtUxrZe9yNtdC9Cue b2jkQ+oSxzbXpASBLCRlpVqP7/NjmpV4xwg0P7r1oh9sgoTpgLHsStGKkXvuZpueDkyW ETm/QPZDvb+sL9Tzb/tc6/8SaVL1ExAkHDDBaZmBaxoLJpIyZ8vfErmF25sgAtx9v/L1 aNvez755ZWe2GKDgUenLBsKWF7cnaLqkEVr7vMKeGT3xpcQXdieIzPoJAVZzSx4zE0ea acKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:message-id:date:to:from :dkim-signature:arc-authentication-results; bh=Fdcjlumf2cwWobtVcqkgO5MWbtWP+EVacVT9khnQL8c=; b=UvjEabUHKWvOF0q76AfW06NfjfheE9bM4RzkEei2jn+tXbkDB9Lid2Lne1JeBsZjuu KWnUF5tKkyvQgkckFg1w84Z9aMvTBdbExoEIdKERlHRxjndXrEsnc1C6UOl/QFawoUkt ywXjL0nlGgHp4YGybPZ26OqKCb/ABTixA5U++7IvoHcJd2euPBik6f3USBGVwdnoPtlA JqCegaXTKkPsNvox4A7Z6rp1PyGn8aK0NuL/gFdcms1iZl384c0kq6YEfCPcWHSQmc8O 8k5g2M1+ZiEF65lSQTakFXZicavUSFWEtBhn8i8H+k6JaCJ9ToOMa4OD002RvtDLI47B GvOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=ZKKpIFl+; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id k189si2600721ybf.813.2017.12.18.09.22.15 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 18 Dec 2017 09:22:15 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=ZKKpIFl+; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:58464 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQz7G-0003KZ-Kf for patch@linaro.org; Mon, 18 Dec 2017 12:22:14 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36845) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQz3Q-0000Lx-Ml for qemu-devel@nongnu.org; Mon, 18 Dec 2017 12:18:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQz3D-0000fj-8B for qemu-devel@nongnu.org; Mon, 18 Dec 2017 12:18:16 -0500 Received: from mail-pg0-x232.google.com ([2607:f8b0:400e:c05::232]:46653) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eQz3C-0000eE-Uz for qemu-devel@nongnu.org; Mon, 18 Dec 2017 12:18:03 -0500 Received: by mail-pg0-x232.google.com with SMTP id b11so9390277pgu.13 for ; Mon, 18 Dec 2017 09:18:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Fdcjlumf2cwWobtVcqkgO5MWbtWP+EVacVT9khnQL8c=; b=ZKKpIFl+b2gtGzgx2DSvz46W/z6RjPut5311id0ZvI31ZaxS1EzXV7vobWHWsOMb+j c4Y7xnjNAcWMLxN2grXwN6fa4oc6SGHzvt8vFtcSRR4ToSHCtyAUVQ8XgfzAdXoB8eOd pE121I6xuOlSWWtgf/44fRpnA+rS/quzYavdw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Fdcjlumf2cwWobtVcqkgO5MWbtWP+EVacVT9khnQL8c=; b=Tophl3cLejzZbjmT8/7DAo2sAhG8meRn5ttHY2U3/ThsKVKpx/NFFta1nSNGIs5x8B HXOT0L0mUGkB3e/ToHvVgEictVu9c+2eHc6buIsxw9WFEsLL3YdVzv6bddNzo78TV0V5 e00e/xuMOOH1kNm9YFtgf97UbdQu9MeX0nCDod4+zLvbQnH4kL4qiTVGkGERq6IsiPif rZ744mb83AN2XUuXYp00xGY+P2k9ODuKe0+PznOlZVVpV2Z7LQbIXuh/FCm9zcYjwWIR OTzcRYFUBnhbUHW3sLq/L/fSHRnVHzz0pQAVkBknoDD6ASmrTpQdIhqwlR19AFIJh9OE TT4w== X-Gm-Message-State: AKGB3mJFPoJBEVUTZb0wgZr/UdEVrmlq//jJRuxzWJctVDdQ8WmyxZQY yLuhhvAg27I0ZBUkitsTwL1Qfn0S+HA= X-Received: by 10.99.120.65 with SMTP id t62mr364398pgc.294.1513617481171; Mon, 18 Dec 2017 09:18:01 -0800 (PST) Received: from cloudburst.twiddle.net (174-21-7-63.tukw.qwest.net. [174.21.7.63]) by smtp.gmail.com with ESMTPSA id y19sm21050272pgv.19.2017.12.18.09.17.59 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 18 Dec 2017 09:18:00 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Mon, 18 Dec 2017 09:17:32 -0800 Message-Id: <20171218171758.16964-1-richard.henderson@linaro.org> X-Mailer: git-send-email 2.14.3 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c05::232 Subject: [Qemu-devel] [PATCH v7 00/26] tcg: generic vector operations X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Minor changes since last time. * Two bugs fixed pointed out by Kirill. * Allow for 4 and 5 operand operations. r~ Richard Henderson (26): tcg: Add types and basic operations for host vectors tcg: Add generic vector expanders tcg: Allow multiple word entries into the constant pool target/arm: Align vector registers target/arm: Use vector infrastructure for aa64 add/sub/logic target/arm: Use vector infrastructure for aa64 mov/not/neg target/arm: Use vector infrastructure for aa64 dup/movi tcg/i386: Add vector operations tcg: Add tcg_expand_vec_op and tcg-target.opc.h tcg: Add generic vector ops for interleave target/arm: Use vector infrastructure for aa64 zip/uzp/trn/xtn tcg: Add generic vector ops for constant shifts target/arm: Use vector infrastructure for aa64 constant shifts tcg: Add generic vector ops for comparisons target/arm: Use vector infrastructure for aa64 compares tcg/i386: Add vector operations/expansions for shift/cmp/interleave tcg: Add generic vector ops for multiplication target/arm: Use vector infrastructure for aa64 multiplies tcg: Add generic vector ops for extension target/arm: Use vector infrastructure for aa64 widening shifts tcg/i386: Add vector operations/expansions for mul/extend tcg/aarch64: Add vector operations tcg/optimize: Handle vector opcodes during optimize tcg: Add support for 4 operand vector ops tcg: Add support for 5 operand vector ops tcg: Add generic helpers for saturating arithmetic Makefile.target | 4 +- accel/tcg/tcg-runtime.h | 122 +++ target/arm/cpu.h | 2 +- tcg/aarch64/tcg-target.h | 30 +- tcg/aarch64/tcg-target.opc.h | 3 + tcg/i386/tcg-target.h | 46 +- tcg/i386/tcg-target.opc.h | 11 + tcg/tcg-gvec-desc.h | 49 + tcg/tcg-op-gvec.h | 271 +++++ tcg/tcg-op.h | 51 + tcg/tcg-opc.h | 59 + tcg/tcg.h | 81 ++ accel/tcg/tcg-runtime-gvec.c | 884 +++++++++++++++ target/arm/translate-a64.c | 1100 +++++++++++++------ tcg/aarch64/tcg-target.inc.c | 674 +++++++++++- tcg/i386/tcg-target.inc.c | 1325 ++++++++++++++++++++++- tcg/optimize.c | 141 ++- tcg/tcg-op-gvec.c | 2440 ++++++++++++++++++++++++++++++++++++++++++ tcg/tcg-op-vec.c | 566 ++++++++++ tcg/tcg-pool.inc.c | 115 +- tcg/tcg.c | 144 ++- accel/tcg/Makefile.objs | 2 +- tcg/README | 148 +++ 23 files changed, 7734 insertions(+), 534 deletions(-) create mode 100644 tcg/aarch64/tcg-target.opc.h create mode 100644 tcg/i386/tcg-target.opc.h create mode 100644 tcg/tcg-gvec-desc.h create mode 100644 tcg/tcg-op-gvec.h create mode 100644 accel/tcg/tcg-runtime-gvec.c create mode 100644 tcg/tcg-op-gvec.c create mode 100644 tcg/tcg-op-vec.c -- 2.14.3