From patchwork Tue May 14 00:05:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 164086 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp1977997ili; Mon, 13 May 2019 17:21:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqxdQFjYl1RdXsyYlkqHQDIcrYAcBZt59pjQc0Cg3TuUpfVTALoE7O4gFRzy1Iyvv2FHfLeT X-Received: by 2002:a17:906:164e:: with SMTP id n14mr25326226ejd.72.1557793283485; Mon, 13 May 2019 17:21:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557793283; cv=none; d=google.com; s=arc-20160816; b=V5C2cDboe2Faeyx9ZP+C5uEXIMVraSrWco79dJyQ2ICh3uTI09NJAWZj8eWVk00i8g S2ovDMxixVR29nbLb8EeEdRriW7jsM1X4ZJT+lkoFJrxFYb28xBxtnC0AkC8gMH9MIRU bm7LS/cgwarmt/qZ/BLc6pMLAjvWQ+TYmKXucKaANc7OgB7Zqm2+bOLHBxYGK5uUdaY9 yf5wcfDEJWD/JuW9WnZ5HAB5k54aoMTw2VDHaG7Ob0uE7weQcK7ZJVdXWY6K8SOJBr7K QwWZhVvZ1UO9ltrSAqU/vI0ALfa8ld4WALgNq0p8gl3hAUKmGjd9G26Dgl9z4vzXs6cj tYCw== 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=ZQ1YDg+Qzl3mKc/BMIpSQ76NdqfcVhEXxXk6ITX6eLg=; b=wv90NEiKyfQgsguwCP7rM6mlkDAc4Rm8gT1UOdHuH7iFRuKWPwCTKVWxODEioOdM4P nUADw02pnpKoJX/oruLF7I1ZxCZiBHpZoJKHoJ5HaCqRIRud149R33yWZdjFxLq5ULJl 1K4vP9NHFF6D+xy5VtZogoMjJVwmzvH/uGaMCTGEuq5264AzuQLygWd6SlGocLXzjnyZ dLlxB0fje3LNG4krKQEUcHwn2Z6eFsNw67wtKY6VC/QsHqcV3rcDVC1QZWiJMpRak2IZ 1sr2jEPH1zLRKxX5M+rB8j9udlxffNSLunI3R3TyWg0FRsvf+ohC0VF487U0Fl2WuzAg mkJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=wS895mmg; 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 x18si3904366eda.23.2019.05.13.17.21.23 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 13 May 2019 17:21:23 -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=wS895mmg; 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]:36798 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hQLC6-0005oI-AM for patch@linaro.org; Mon, 13 May 2019 20:21:22 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55553) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hQL4T-0002wt-QQ for qemu-devel@nongnu.org; Mon, 13 May 2019 20:16:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hQKx3-0002yl-5c for qemu-devel@nongnu.org; Mon, 13 May 2019 20:06:21 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]:44554) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hQKx1-0002pZ-0E for qemu-devel@nongnu.org; Mon, 13 May 2019 20:05:47 -0400 Received: by mail-pl1-x630.google.com with SMTP id d3so7261622plj.11 for ; Mon, 13 May 2019 17:05:45 -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=ZQ1YDg+Qzl3mKc/BMIpSQ76NdqfcVhEXxXk6ITX6eLg=; b=wS895mmgTSDOnEYCyqjes1sBOj244tVFOU/M7mqyTUOPmnTIsASL1eyGsOpsDXsGJ7 EOsDBMSKupoddTDcLIjF0CwnwLLwfZmF+qLnVsvsWhOu8gKzR5ydPBpzxgB2Z4zqt7G3 aaO0o77FTzRRJhxPFhumw9LWkhyBXV2bv2pOGb68xqTyFxglXSrpr0jLBIbwEkpjR7k0 0Mklb9XxvPfPIbSYqdVpT2JsmQpCWSqPRUcBtJ6f1W5CGzIk4Vn2wCOAErzqM4ed8j6Y vJDmUkPW7LgpfG2GYbmuz32F2IHVe7FazyBfNEi82FAaCZFxXzKnctULXRTpJrb1xLpI 48nQ== 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=ZQ1YDg+Qzl3mKc/BMIpSQ76NdqfcVhEXxXk6ITX6eLg=; b=EqanK9i7K/15mhYvVTHoyO7KxuyemSR1zSHs8VeI2rDTIGx1yg+xz7CrOXzp+h1C9u PY6B3ERs9WhpkcbGEwpQBYX681YnBSOrqcvBI/m9pTtQO8Lb55yrf/CzpYPiooUE/D47 uMKOUfhYzgFWNaUnT95SuUounll8EVnqQPKMQjngF1DuKiTrjU6SMoT2dbRED9d2MqqI tjqbtsuKPWvn2+Eo1ZvI3/lOMj4mx9PROI13FcVzPByEOAa4OqavrPQojsP/waOwgqNH +xNkY1+WLY5iGrkYkW0H5/3PuqJ6R+TJKs2+yC/yf6rgB4XDG9nbYpVaSyPKuSDpu1ka k41w== X-Gm-Message-State: APjAAAVAAa7WIRIjqSTNBuJ3p36Etk9Y+YX0txFDIqfAM0DtMg/GGnOv fyZvIXGjOKMHSOjXMAvVjUOVJxF/fFE= X-Received: by 2002:a17:902:b202:: with SMTP id t2mr33523947plr.69.1557792343156; Mon, 13 May 2019 17:05:43 -0700 (PDT) Received: from localhost.localdomain (97-113-13-231.tukw.qwest.net. [97.113.13.231]) by smtp.gmail.com with ESMTPSA id u3sm238151pfn.29.2019.05.13.17.05.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 May 2019 17:05:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Mon, 13 May 2019 17:05:09 -0700 Message-Id: <20190514000540.4313-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::630 Subject: [Qemu-devel] [PULL 00/31] tcg: gvec improvments 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@linux.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Most of these patches are in support of David's guest vector patches for target/s390x. r~ The following changes since commit e24f44dbeab8e54c72bdaedbd35453fb2a6c38da: Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2019-05-13' into staging (2019-05-13 16:52:56 +0100) are available in the Git repository at: https://github.com/rth7680/qemu.git tags/pull-tcg-20190513 for you to fetch changes up to a7b6d286cfb5205b9f5330aefc5727269b3d810f: tcg/aarch64: Do not advertise minmax for MO_64 (2019-05-13 22:52:08 +0000) ---------------------------------------------------------------- Improve code generation for vector duplication. Add vector expansions for shifts by non-constant scalar. Add vector expansions for shifts by vector. Add integer and vector expansions for absolute value. Several patches in preparation for Altivec. Bug fix for tcg/aarch64 vs min/max. ---------------------------------------------------------------- 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 | 121 ++++- 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, 2020 insertions(+), 473 deletions(-)