From patchwork Wed Jun 27 04:32:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 935260 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="c+si3qOX"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41FqnQ3qkwz9s1B for ; Wed, 27 Jun 2018 14:34:33 +1000 (AEST) Received: from localhost ([::1]:56467 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fY2A1-00043a-SJ for incoming@patchwork.ozlabs.org; Wed, 27 Jun 2018 00:34:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60044) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fY29C-00043I-2J for qemu-devel@nongnu.org; Wed, 27 Jun 2018 00:33:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fY296-0008OI-JZ for qemu-devel@nongnu.org; Wed, 27 Jun 2018 00:33:38 -0400 Received: from mail-pf0-x231.google.com ([2607:f8b0:400e:c00::231]:41879) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fY296-0008NW-CT for qemu-devel@nongnu.org; Wed, 27 Jun 2018 00:33:32 -0400 Received: by mail-pf0-x231.google.com with SMTP id a11-v6so384276pff.8 for ; Tue, 26 Jun 2018 21:33:32 -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=l3NgF50hmA7g+CHvTO0lQHMuS5cDkQRTneG/AruTrN8=; b=c+si3qOXcI2n7frXIAI+pPpw+XjH9jX76KJyGA+YR7hmIFQc0GkSclRd/J0/aAkJLh Aj7FQCBIUgFEzamCAjnYopvmi+vm1pQfq8qnwaYgnr8jqFKbYC8zvdrdBPXdg6GidGsL xrca8VqIIoCY3IzzOodqozVEdkE9ufQb7aDJ4= 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=l3NgF50hmA7g+CHvTO0lQHMuS5cDkQRTneG/AruTrN8=; b=mizyMgX07V7pnS9ZWefXPnS2D8v6ULrq0kqbFy9JVe3XJX2hqkVUzE11SjQPCU2qhy s8NmT9B9sye1vmGPlP/SkGc/yCeFN1EU+kqvOX0a3aSGuZ5t+CRw9eJCyM3HYvDpY+Vo kaBCMfLOjFjFLB82C1BuZ1leXv2w3skqK3qp4v+/nj+R3OpYO9XE18h/TeBPku/+L81F 8pMeBdS9OsMPzaJEpBLYtbOmonvdlGyl8R792AVth70874RXxAJxnGsobbH+a03s+U6F +A/zZ1NVdePpHrDj3B+sZN6P7Lcr9/ATTekNwRU6DriWe4m3OqeW3XJRcujmL0CVhS8k 1+PQ== X-Gm-Message-State: APt69E1M9S2/xOloqrto0AoGILZuBM3dm+BXAtKnhCoQNZ9wK/CJ/d4B w3ycNkOUHcSvztCeeaKpCcmslBntOLU= X-Google-Smtp-Source: ADUXVKIb9o4XnZ87qDK5rPs/5SDbtNuxm/4GPXQVarAw1zFNzmGwQeN+hGLhsJH0daRvn2VVl2aJyg== X-Received: by 2002:a65:6292:: with SMTP id f18-v6mr3747479pgv.85.1530074011000; Tue, 26 Jun 2018 21:33:31 -0700 (PDT) Received: from cloudburst.twiddle.net (97-126-112-211.tukw.qwest.net. [97.126.112.211]) by smtp.gmail.com with ESMTPSA id p20-v6sm4577638pff.90.2018.06.26.21.33.29 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 26 Jun 2018 21:33:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 26 Jun 2018 21:32:53 -0700 Message-Id: <20180627043328.11531-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:400e:c00::231 Subject: [Qemu-devel] [PATCH v6 00/35] target/arm SVE patches 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, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This is the remainder of the SVE enablement patches, with an extra bonus patch to enable ARMv8.2-DotProd. V6 updates based on review. Patches with changes: 0002-target-arm-Implement-SVE-Contiguous-Load-first-fa.patch 0007-target-arm-Implement-SVE-FP-Multiply-Add-Group.patch 0009-target-arm-Implement-SVE-load-and-broadcast-eleme.patch 0010-target-arm-Implement-SVE-store-vector-predicate-r.patch 0011-target-arm-Implement-SVE-scatter-stores.patch 0013-target-arm-Implement-SVE-gather-loads.patch 0023-target-arm-Implement-SVE-floating-point-convert-p.patch 0027-target-arm-Implement-SVE-MOVPRFX.patch 0030-target-arm-Pass-index-to-AdvSIMD-FCMLA-indexed.patch 0033-target-arm-Implement-SVE-dot-product-indexed.patch 0034-target-arm-Enable-SVE-for-aarch64-linux-user.patch 0035-target-arm-Implement-ARMv8.2-DotProd.patch Patches lacking reviews: 0002-target-arm-Implement-SVE-Contiguous-Load-first-fa.patch 0007-target-arm-Implement-SVE-FP-Multiply-Add-Group.patch 0013-target-arm-Implement-SVE-gather-loads.patch 0030-target-arm-Pass-index-to-AdvSIMD-FCMLA-indexed.patch 0031-target-arm-Implement-SVE-fp-complex-multiply-add-.patch 0033-target-arm-Implement-SVE-dot-product-indexed.patch r~ Richard Henderson (35): target/arm: Implement SVE Memory Contiguous Load Group target/arm: Implement SVE Contiguous Load, first-fault and no-fault target/arm: Implement SVE Memory Contiguous Store Group target/arm: Implement SVE load and broadcast quadword target/arm: Implement SVE integer convert to floating-point target/arm: Implement SVE floating-point arithmetic (predicated) target/arm: Implement SVE FP Multiply-Add Group target/arm: Implement SVE Floating Point Accumulating Reduction Group target/arm: Implement SVE load and broadcast element target/arm: Implement SVE store vector/predicate register target/arm: Implement SVE scatter stores target/arm: Implement SVE prefetches target/arm: Implement SVE gather loads target/arm: Implement SVE first-fault gather loads target/arm: Implement SVE scatter store vector immediate target/arm: Implement SVE floating-point compare vectors target/arm: Implement SVE floating-point arithmetic with immediate target/arm: Implement SVE Floating Point Multiply Indexed Group target/arm: Implement SVE FP Fast Reduction Group target/arm: Implement SVE Floating Point Unary Operations - Unpredicated Group target/arm: Implement SVE FP Compare with Zero Group target/arm: Implement SVE floating-point trig multiply-add coefficient target/arm: Implement SVE floating-point convert precision target/arm: Implement SVE floating-point convert to integer target/arm: Implement SVE floating-point round to integral value target/arm: Implement SVE floating-point unary operations target/arm: Implement SVE MOVPRFX target/arm: Implement SVE floating-point complex add target/arm: Implement SVE fp complex multiply add target/arm: Pass index to AdvSIMD FCMLA (indexed) target/arm: Implement SVE fp complex multiply add (indexed) target/arm: Implement SVE dot product (vectors) target/arm: Implement SVE dot product (indexed) target/arm: Enable SVE for aarch64-linux-user target/arm: Implement ARMv8.2-DotProd target/arm/cpu.h | 1 + target/arm/helper-sve.h | 682 +++++++++++++ target/arm/helper.h | 44 +- linux-user/elfload.c | 2 + target/arm/cpu.c | 8 + target/arm/cpu64.c | 2 + target/arm/helper.c | 2 +- target/arm/sve_helper.c | 1855 ++++++++++++++++++++++++++++++++++++ target/arm/translate-a64.c | 57 +- target/arm/translate-sve.c | 1688 +++++++++++++++++++++++++++++++- target/arm/translate.c | 102 +- target/arm/vec_helper.c | 311 +++++- target/arm/sve.decode | 427 +++++++++ 13 files changed, 5116 insertions(+), 65 deletions(-)