From patchwork Sat May 4 05:52:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 163341 Delivered-To: patch@linaro.org Received: by 2002:a92:7e86:0:0:0:0:0 with SMTP id q6csp242057ill; Fri, 3 May 2019 22:53:27 -0700 (PDT) X-Google-Smtp-Source: APXvYqx/gOiDp1bxOK+V6d0lbLBawK3zpt1Ke61G47dCql1iyRNqvxVjWOtg4Qvyj6q4BDtte+2A X-Received: by 2002:adf:f588:: with SMTP id f8mr9083476wro.282.1556949207821; Fri, 03 May 2019 22:53:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556949207; cv=none; d=google.com; s=arc-20160816; b=E3QZmDqoDBnIcgFt9WhOrDpj86lZuiVZw/Z2PmDJngUnIj9AxIo3BFNdnKeIgVYdcJ pKyCyAnENBwyoTb16GkFXjtDRbEOZN6lMdjX7yADyhwLov/mN+CmQF8FOdWoDFkeoHrN 1bmmmdBe2fimO868IL0ysmi25DUK+WclHIx7xKbMeFro4GNOtwXZvv4o7bYg7bViw+Ro FGSjPY5GCUUPCWRzUfzZJXH/8DT+HnzwiVTMx9GpC2j7/wfY6hPJa1d3A0+MDuHhKWU2 /5I9pJ2rGKzxiYE0SA9/9kRwpL3d7LAaUuyMmUPBUQ0aUfMxh02Batml7NzhU/lO5hC4 a4Cg== 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; bh=VifLxzEklX7uqjNVkBv68D9AJ/YnzoCTfQTaGgCGo84=; b=nGzKahvWVlj7F502lYQXFv7krfzxAONzt+97jbjeW+tcL+AiNOPvPx18RXs1NqPaV+ 8VwXfGDvYgqgDnayYWw4cv1nLDG6g7JYLcpNzL4iOPZTWinMkBxgghuPiK4DFk2MWAok vsanjyCtBMB18UI5iA71fP9WGCmNzmEbBoikP/u1J3bd2s2EZ30WFQKKO+HCB23JlJ6c YmoJftFxm6mnb2g6rLbRUkUVSLD1wfBpkhjMoBSQDr5PdmFYPY6jLw5erTRsy86cV0d9 sN/RTTsenpW7qvz0OOpa2IX26NlvLAWow5BjYuwZbTfBpmEb14DZrrbF0tkRhH65HLyh xTfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=gBUsR5px; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 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. [209.51.188.17]) by mx.google.com with ESMTPS id o15si3191690wrn.91.2019.05.03.22.53.27 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 03 May 2019 22:53:27 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=gBUsR5px; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 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 ([127.0.0.1]:51593 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hMnby-0007eb-Mm for patch@linaro.org; Sat, 04 May 2019 01:53:26 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41632) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hMnbf-0007eT-5L for qemu-devel@nongnu.org; Sat, 04 May 2019 01:53:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hMnbd-0003yn-7q for qemu-devel@nongnu.org; Sat, 04 May 2019 01:53:07 -0400 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]:42248) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hMnbc-0003xc-Cx for qemu-devel@nongnu.org; Sat, 04 May 2019 01:53:05 -0400 Received: by mail-pg1-x52e.google.com with SMTP id p6so3756918pgh.9 for ; Fri, 03 May 2019 22:53:04 -0700 (PDT) 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=VifLxzEklX7uqjNVkBv68D9AJ/YnzoCTfQTaGgCGo84=; b=gBUsR5pxmiQ24kKl0sm/Aq5SJvf5oWKGV/OKgz8vzyLO7wvuJAwhL3qKjOqFpvge+2 lsPAalfh7841rvqgNkPtnIfuuqE9tO5knt4TEfe4yCkDwREwkrZmaGqwgKWlvziqGRTc 7j85R/oi6c8x0+AqJXF7dOBaTBhsVIulGkH8aJ8pg9ZDyvoMU706Lhf+CMIREs8LCW7K E44C3QEo0lVipOnBAYN8bVhE8hhM/61qmQVRiDRWPnupzs6kBjcMzt3d3LZpiIpp8KBj BJFYTM2pdz3Rrad4ih++Nptvp3OluYfJuFo/wAiQezIwfywLmZ2vhAbUECk8BUSjwveD LyOQ== 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=VifLxzEklX7uqjNVkBv68D9AJ/YnzoCTfQTaGgCGo84=; b=jge/pLuHDjWWWdw34un4p7eLOcMk7i7+9GbJ8785BVtiZVpkDxis7oUBb1cws/lqgV GGp8spn3doQ4UT5DhW7NTwSaRLQChZnuYjD7gSZEoiKKH6/zJEQGDVxKIcU6LJh/E3Cd i7m9Oy4KNCBS8srYakXXYaShvLuOUgSoXIniS1MUZj26U876FkZEfL3XyfwBE9DkyNfd UjWoBWTC7ZR9MFolU5eCDIRvFWGWX69UoD365Azbp/ZhsNV6d0L0KuZJTf6FXABPZ30D sb0hCV4tgxhdRrW3kTLieT8q+VlID8nazbBLHfXdxfu2tGppuxGwLp17xBQrLcJ+CFbn G+Dg== X-Gm-Message-State: APjAAAVEZfWuQqVeT6Ruv1FQFqRDchkEz5LK/9j9WJ4nkTJt+7pStrQH vnA6HkCCerV7Wfeu6TkIKggzzT8mllI= X-Received: by 2002:a62:f245:: with SMTP id y5mr16855812pfl.12.1556949182610; Fri, 03 May 2019 22:53:02 -0700 (PDT) Received: from localhost.localdomain (97-113-189-189.tukw.qwest.net. [97.113.189.189]) by smtp.gmail.com with ESMTPSA id 15sm6680423pfo.117.2019.05.03.22.53.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 03 May 2019 22:53:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 3 May 2019 22:52:29 -0700 Message-Id: <20190504055300.18426-1-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::52e Subject: [Qemu-devel] [PATCH v3 00/31] tcg vector improvements 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: alex.bennee@linaro.org, david@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Changes since v2 (stsquad review): * Split out a tcg/arm/ change to tcg_out_mov. * Add some additional commentary for tcg_reg_alloc_foo. Patches missing ack/review: 0006-tcg-arm-Use-tcg_out_mov_reg-in-tcg_out_mov.patch (new) 0010-tcg-Manually-expand-INDEX_op_dup_vec.patch 0011-tcg-Add-tcg_out_dupm_vec-to-the-backend-interface.patch 0012-tcg-i386-Implement-tcg_out_dupm_vec.patch 0013-tcg-aarch64-Implement-tcg_out_dupm_vec.patch 0016-tcg-i386-Support-vector-variable-shift-opcodes.patch 0018-tcg-Add-gvec-expanders-for-vector-shift-by-scalar.patch 0019-tcg-i386-Support-vector-scalar-shift-opcodes.patch 0022-tcg-i386-Support-vector-absolute-value.patch 0025-target-cris-Use-tcg_gen_abs_tl.patch 0027-target-ppc-Use-tcg_gen_abs_tl.patch 0031-tcg-aarch64-Do-not-advertise-minmax-for-MO_64.patch (new) r~ David Hildenbrand (1): tcg: Implement tcg_gen_gvec_3i() Philippe Mathieu-Daudé (2): target/ppc: Use tcg_gen_abs_i32 target/tricore: Use tcg_gen_abs_tl Richard Henderson (28): tcg: Do not recreate INDEX_op_neg_vec unless supported tcg: Allow add_vec, sub_vec, neg_vec, not_vec to be expanded tcg: Specify optional vector requirements with a list tcg: Assert fixed_reg is read-only tcg/arm: Use tcg_out_mov_reg in tcg_out_mov tcg: Return bool success from tcg_out_mov tcg: Support cross-class moves without instruction support tcg: Promote tcg_out_{dup,dupi}_vec to backend interface tcg: Manually expand INDEX_op_dup_vec tcg: Add tcg_out_dupm_vec to the backend interface tcg/i386: Implement tcg_out_dupm_vec tcg/aarch64: Implement tcg_out_dupm_vec tcg: Add INDEX_op_dupm_vec tcg: Add gvec expanders for variable shift tcg/i386: Support vector variable shift opcodes tcg/aarch64: Support vector variable shift opcodes tcg: Add gvec expanders for vector shift by scalar tcg/i386: Support vector scalar shift opcodes tcg: Add support for integer absolute value tcg: Add support for vector absolute value tcg/i386: Support vector absolute value tcg/aarch64: Support vector absolute value target/arm: Use tcg_gen_abs_i64 and tcg_gen_gvec_abs target/cris: Use tcg_gen_abs_tl target/ppc: Use tcg_gen_abs_tl target/s390x: Use tcg_gen_abs_i64 target/xtensa: Use tcg_gen_abs_i32 tcg/aarch64: Do not advertise minmax for MO_64 accel/tcg/tcg-runtime.h | 20 + target/arm/helper.h | 2 - tcg/aarch64/tcg-target.h | 3 +- tcg/aarch64/tcg-target.opc.h | 2 + tcg/i386/tcg-target.h | 5 +- tcg/tcg-op-gvec.h | 64 +- tcg/tcg-op.h | 14 + tcg/tcg-opc.h | 2 + tcg/tcg.h | 21 + accel/tcg/tcg-runtime-gvec.c | 192 ++++++ target/arm/neon_helper.c | 5 - target/arm/translate-a64.c | 41 +- target/arm/translate-sve.c | 9 +- target/arm/translate.c | 144 +++-- target/cris/translate.c | 9 +- target/ppc/translate.c | 68 +- target/ppc/translate/spe-impl.inc.c | 14 +- target/ppc/translate/vmx-impl.inc.c | 7 +- target/s390x/translate.c | 8 +- target/tricore/translate.c | 27 +- target/xtensa/translate.c | 9 +- tcg/aarch64/tcg-target.inc.c | 120 +++- tcg/arm/tcg-target.inc.c | 5 +- tcg/i386/tcg-target.inc.c | 163 ++++- tcg/mips/tcg-target.inc.c | 3 +- tcg/optimize.c | 8 +- tcg/ppc/tcg-target.inc.c | 3 +- tcg/riscv/tcg-target.inc.c | 5 +- tcg/s390/tcg-target.inc.c | 3 +- tcg/sparc/tcg-target.inc.c | 3 +- tcg/tcg-op-gvec.c | 945 +++++++++++++++++++++++----- tcg/tcg-op-vec.c | 270 +++++++- tcg/tcg-op.c | 20 + tcg/tcg.c | 271 ++++++-- tcg/tci/tcg-target.inc.c | 3 +- tcg/README | 4 + 36 files changed, 2019 insertions(+), 473 deletions(-) -- 2.17.1