From patchwork Tue May 28 20:30:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 799505 Delivered-To: patch@linaro.org Received: by 2002:adf:e110:0:b0:35b:5a80:51b4 with SMTP id t16csp421102wrz; Tue, 28 May 2024 13:31:30 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVD+qUz2vG+Q+tCcP7xnfgS7rNj27HRN2mVMbFoFdav0rDsdImNOJA6gSEJyXTgKfbCoCr4jO3ZP8EzNbwCcTaP X-Google-Smtp-Source: AGHT+IHHXvg0oG3okLxS63kq0SYFAX06AakcD6uQi+jBQeh7aWQwBvObe8Ek0/ierqJ9Ee7lH9uz X-Received: by 2002:a05:622a:1b91:b0:43a:9e4:1689 with SMTP id d75a77b69052e-43fb0e8f65dmr135572111cf.19.1716928290453; Tue, 28 May 2024 13:31:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1716928290; cv=none; d=google.com; s=arc-20160816; b=xbWROtYVb5La4XIQH/on7kt+d6vQ9sdZcaIr79X0xjXcSxT7HsCDqqsOeLRYaOUscH voODDtOneelldB50uGcOTk0vq5rMtcLoeXPZ2gbOROEt/Cq+fiFAayg7EkAeojCCHfyF kB7C1wtczdKtsnoQ9BpDBgVmP2Gjf0SUCUlSK/jWcyWRd3uEgUgisaKiRzQZG+NGuOtB U/OVIG83PufvXuAciwyznWGv16Xajdr2HXVhmhT9+XHAWEwSTPplkv+RUFf3k4XgehJM zC4ip4b7ORCMrJjs86D49KsH5dEIujKpthZqIUtCB10OtO5Iiia7rn0cXDgipXV9txDQ 9zNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature; bh=ndZM1rWGoFFrniz4pC8YiK5TWwndu3mYDdskay9v+ao=; fh=9Ev+QBUhk6P6vR3LT1wYeDLexozsz44nqjfoyPajZCc=; b=NDIRNkBsoVC+72yWKcsbuW4oblLwgzFTm3HEhBNnnK/eIKOFO4ZeRUwqmUYBnETIPK YCVZaUxI3WYWb1mADMMM+HiPGHHKIT7zQrkjuUn7KAye2AAkmX/2uz4M/e39jZL6k2sc cae5zGRE9Fl2d6ubslInKIme6NUVziB+GTlnRpsAdiKVsZYbX+XKy/OBIB05dnEcHJzI oLe7w3GDteZptC8n5ALRodIQCtDOQMmeA6OA8/jwXbX94GYEoJEvTvf2OndvanQYtIPQ eFtMxQbbd9UogC/+AJ2B3YcLWrtTQrcR1Q8mdFT+JJEGrb/71hdPpk6vwBWQqDBuQZ6g HwAg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rOsYl69h; 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=pass (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 d75a77b69052e-43fdc8ab71dsi18697531cf.320.2024.05.28.13.31.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 28 May 2024 13:31:30 -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=pass header.i=@linaro.org header.s=google header.b=rOsYl69h; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sC3TD-0002k9-MC; Tue, 28 May 2024 16:30:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sC3TA-0002jc-6X for qemu-devel@nongnu.org; Tue, 28 May 2024 16:30:53 -0400 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sC3T6-0003Z3-44 for qemu-devel@nongnu.org; Tue, 28 May 2024 16:30:50 -0400 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-6f69422c090so1083498b3a.2 for ; Tue, 28 May 2024 13:30:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1716928246; x=1717533046; darn=nongnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=ndZM1rWGoFFrniz4pC8YiK5TWwndu3mYDdskay9v+ao=; b=rOsYl69hzYO5XRCRGYz1YNEY8ff7mp/QsG0HgHD77+VmtCJB/iE/Batt1MFT61ZAPN Oikiu6MOUDwJzKYn+mMAJdbAC/YliU9VgvQiD/AWJ7DCViIlWfgY6awFjG+6o13qY8CW FnCbrzvvpF/+KJ9f9glmE6w+fwfKEbxRSOgnhkzE1zpxG9OjmoT0hKwHrNBQI68uxNA7 E2jVtC1F3NoBnzqhnK2oC7+yNB1Pp5QAYBAGsm4vfu4ENHsdVYXiMQJGMlRWPdUiH76J CVXEUWyjqUi9v6AIeuXRj12rADJjlU7Mrm6gkgmE17sqnu3PKeLJm3smP+V3VDiyKLx3 BTuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716928246; x=1717533046; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ndZM1rWGoFFrniz4pC8YiK5TWwndu3mYDdskay9v+ao=; b=Txm1RfQrk+BV2/WxQta/wpXZ6Z/U4wxg8dDsh3EDsfj/arJ9QMubHoGGhGY+W4EcmL LXJXZqcZQBPFvQj07EZYwwuZPrRYceZgdgTJ/TZCOvmBfi+gAAobUvRJ848Wu5DUSabH fAhGC+mXXq626jzmTcC+Vv1eUlcxOnElXQDyetay3EuMBale1nXlAWLouec8E9Ag2D5X kLU5w9jhycZQvTzbjs8awNtSpwlQFlt+0/opK+nlWba/fj9XusAAxpFb9LDZN1kUqFzO RlHCm0E2dqsEFoeOolD3nJOhKxizsFPrzxJtFSk97gF9FLzg1/kfH3fNzNI6lmh2uF8T CdeA== X-Gm-Message-State: AOJu0YysnIMkGBeo8XthxN/f+WWJ+jN+6Dexqf4rDetrZ65ZRQN6aQ06 thm7ZZXT+3GCfMRqUN7To65H5FA9VVPT1J1dSFhV9HPRdxXRyKW/yra2zZ6YxrEwQX13FT9qCDC A X-Received: by 2002:a05:6a00:3311:b0:6e7:32a0:806a with SMTP id d2e1a72fcca58-6f8f3f9708fmr13329222b3a.28.1716928245949; Tue, 28 May 2024 13:30:45 -0700 (PDT) Received: from stoup.. (174-21-72-5.tukw.qwest.net. [174.21.72.5]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-6f8fbd3dbe9sm7042036b3a.10.2024.05.28.13.30.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 May 2024 13:30:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v3 00/33] target/arm: Convert a64 advsimd to decodetree (part 1b) Date: Tue, 28 May 2024 13:30:11 -0700 Message-Id: <20240528203044.612851-1-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::429; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x429.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Changes for v3: * Reword prefetch unpredictable patch. * Validate vector length when qc is an implied operand. * Adjust some legacy decode based on review. * Apply r-b. Patches needing review: 01-target-arm-Diagnose-UNPREDICTABLE-operands-to-PLD.patch 03-target-arm-Assert-oprsz-in-range-when-using-vfp.q.patch 04-target-arm-Convert-SUQADD-and-USQADD-to-gvec.patch 10-target-arm-Convert-SRSHL-and-URSHL-register-to-gv.patch 12-target-arm-Convert-SQSHL-and-UQSHL-register-to-gv.patch 31-target-arm-Convert-SQDMULH-SQRDMULH-to-decodetree.patch 32-target-arm-Convert-FMADD-FMSUB-FNMADD-FNMSUB-to-d.patch r~ Richard Henderson (33): target/arm: Diagnose UNPREDICTABLE operands to PLD, PLDW, PLI target/arm: Improve vector UQADD, UQSUB, SQADD, SQSUB target/arm: Assert oprsz in range when using vfp.qc target/arm: Convert SUQADD and USQADD to gvec target/arm: Inline scalar SUQADD and USQADD target/arm: Inline scalar SQADD, UQADD, SQSUB, UQSUB target/arm: Convert SQADD, SQSUB, UQADD, UQSUB to decodetree target/arm: Convert SUQADD, USQADD to decodetree target/arm: Convert SSHL, USHL to decodetree target/arm: Convert SRSHL and URSHL (register) to gvec target/arm: Convert SRSHL, URSHL to decodetree target/arm: Convert SQSHL and UQSHL (register) to gvec target/arm: Convert SQSHL, UQSHL to decodetree target/arm: Convert SQRSHL and UQRSHL (register) to gvec target/arm: Convert SQRSHL, UQRSHL to decodetree target/arm: Convert ADD, SUB (vector) to decodetree target/arm: Convert CMGT, CMHI, CMGE, CMHS, CMTST, CMEQ to decodetree target/arm: Use TCG_COND_TSTNE in gen_cmtst_{i32,i64} target/arm: Use TCG_COND_TSTNE in gen_cmtst_vec target/arm: Convert SHADD, UHADD to gvec target/arm: Convert SHADD, UHADD to decodetree target/arm: Convert SHSUB, UHSUB to gvec target/arm: Convert SHSUB, UHSUB to decodetree target/arm: Convert SRHADD, URHADD to gvec target/arm: Convert SRHADD, URHADD to decodetree target/arm: Convert SMAX, SMIN, UMAX, UMIN to decodetree target/arm: Convert SABA, SABD, UABA, UABD to decodetree target/arm: Convert MUL, PMUL to decodetree target/arm: Convert MLA, MLS to decodetree target/arm: Tidy SQDMULH, SQRDMULH (vector) target/arm: Convert SQDMULH, SQRDMULH to decodetree target/arm: Convert FMADD, FMSUB, FNMADD, FNMSUB to decodetree target/arm: Convert FCSEL to decodetree target/arm/helper.h | 96 ++- target/arm/tcg/translate-a64.h | 14 + target/arm/tcg/translate.h | 44 + target/arm/tcg/a32-uncond.decode | 8 +- target/arm/tcg/a64.decode | 115 +++ target/arm/tcg/neon-dp.decode | 37 +- target/arm/tcg/t32.decode | 7 +- target/arm/tcg/gengvec.c | 689 +++++++++++++++- target/arm/tcg/gengvec64.c | 181 ++++ target/arm/tcg/neon_helper.c | 506 +++--------- target/arm/tcg/translate-a64.c | 1321 ++++++++++-------------------- target/arm/tcg/translate-neon.c | 118 +-- target/arm/tcg/translate.c | 58 ++ target/arm/tcg/vec_helper.c | 128 +++ 14 files changed, 1829 insertions(+), 1493 deletions(-)