From patchwork Tue Dec 5 02:29:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongyu Wang X-Patchwork-Id: 17537 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3174574vqy; Mon, 4 Dec 2023 18:34:24 -0800 (PST) X-Google-Smtp-Source: AGHT+IFi7aRWC1ulM1QQnsSYBamE+ltzGd6/z/g8o3uevd3lXXz+15fWx6e8c8FJluBHm4vp2kcR X-Received: by 2002:a0c:fc41:0:b0:67a:a721:e149 with SMTP id w1-20020a0cfc41000000b0067aa721e149mr630996qvp.118.1701743664076; Mon, 04 Dec 2023 18:34:24 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1701743664; cv=pass; d=google.com; s=arc-20160816; b=bXfJhb1ip3mNECqmHu264IngbtiGbHpWOA91/2Z3sqMVQTqyEF0Z4lHKaWgE8JoGNm mt5SfSw7wHm4HRU3qxFyft64JNiTOsTo7YV+gWfLFEU6ssRQsVvc+bWFBVjN11ZIGd4b M6KJ0j6DRpa3IKGrQ8x9cSiiqWnjvvzuHqVJgOMN68CJezd9YRnxwio4yEkU8KVcf9Ul zUHdVDNGC1Co2gCDHPRMRo9PI1FPJb8N+u33UI+V1tCQndYu3LjkSQZuDsh2iCGwa+Tz GKfO7Xkwq/Zhbl0eOGXKA8iRBVWBYihUko0/38d+qVRmX/sfhFmEeqMxCgt4NbnqyRRI ZbIA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=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 :arc-filter:dmarc-filter:delivered-to; bh=tA0E7W/B7nkF4qxNCXFdvrP4yl0+H/lcd0sOto38jCI=; fh=n8eNxIWSYJwy/CU3QSXzDvE/zeEoomCGojuOcYEQEyQ=; b=ysfpfGPQTYqn0i3U9a2ENk9hD+iXQGNjk0J3bEjweh0OY1KHB+w0Xzs3cImQg6iR9V p48TR0wMK6CfY0HpWhbRb+F38ft6nAt3zb5uAbWZAZd2OFeAgj7Zhav8cXKISjHRBdnF feeczXjAh4MDVZm/eAH7TaDaDokKxwLT0BqAqpQM3hfAWW8s2V2k78VhIXpzAIrJ1o9u O/sU2yxSDtrJTk1AzkSq2Sna22dy+9B777hVrnPKbYRJURO7MIHVSsCSzpAe4cSILgUm 2NlGaNPA5eVE+lgGntroCpd4xSl8ieQzw0ehAbxID0Fo53aXh11Q47KGBmJuCJxlEbrj Ia8g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=SDsGLKT5; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id cn14-20020a05622a248e00b0042557f0cb16si3418234qtb.739.2023.12.04.18.34.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Dec 2023 18:34:24 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=SDsGLKT5; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5503D3943404 for ; Tue, 5 Dec 2023 02:31:41 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 66F1738312D0 for ; Tue, 5 Dec 2023 02:31:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 66F1738312D0 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 66F1738312D0 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701743470; cv=none; b=sj0OHPj8nsdXn7otZ9T+s0x/iAS3T4Qsdn0KvP3+/YNi18kYBmV2K4pcMODZW0elxbHJV4krgMScjkURYk2yeaoPyc8qHflCE+ShaVpHFxdvpTQi9WITYE5/4p8tr/1ePiA4Butd7WK2So1FsbCgTRpEHqipZ8pPmpZRIgbYYEs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701743470; c=relaxed/simple; bh=Swj3rihy3s7bv3VZ+gP1WoEMCvkwFWeIiul9P7CV5+8=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=qSowogx805px0M6S2X9z7YoTzkNOzoTF+wMpYUEgmKGNGbY9eMcpAOxFzbuntQLt5TfJx46LsjZ7D6ylPtwdFVvIg9G5FHK39REKeoNHbf1ZoII0Sf/OpSZBXygzenoT4MQDO436RoaNi8nZ0AHnU3QkagzJGozq8WELa709ShE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from mgamail.intel.com ([192.55.52.136]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rALD6-0001YX-Ox for gcc-patches@gcc.gnu.org; Mon, 04 Dec 2023 21:31:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1701743456; x=1733279456; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=Swj3rihy3s7bv3VZ+gP1WoEMCvkwFWeIiul9P7CV5+8=; b=SDsGLKT5YEYHBNwIe47JyaSOYQV0HvFvcKsI/JYdewtShnlJrIxmZMiN yx57QEb+f1mY9krvX76BlTig5Dv9PxxSvZli4G00VX/6f8rRxm+d1bCuz ti4N1rPRDJjnL+BF1xJ9xHPHad0N1FJMAcLMUaGEmaLNEGPBq0UTMYLua Bb+KrBWCzZngU778piJvuod0qNVZw8RF82xtf0iZk8eUBuVAnm7UrnD9e Yu9j1KyjWhdkH24MkrMDh/jAUb3cpfzsUvWIX5QPpXg+qNCTAJqElabOp yza35H+ATm/teiydGTzuVguZvl3Lut/K668z3zCeBxu6taFPSPAOfpTI2 A==; X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="373277778" X-IronPort-AV: E=Sophos;i="6.04,251,1695711600"; d="scan'208";a="373277778" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Dec 2023 18:29:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10914"; a="841275491" X-IronPort-AV: E=Sophos;i="6.04,251,1695711600"; d="scan'208";a="841275491" Received: from shvmail03.sh.intel.com ([10.239.245.20]) by fmsmga004.fm.intel.com with ESMTP; 04 Dec 2023 18:29:49 -0800 Received: from shliclel4217.sh.intel.com (shliclel4217.sh.intel.com [10.239.240.127]) by shvmail03.sh.intel.com (Postfix) with ESMTP id 347ED100570C; Tue, 5 Dec 2023 10:29:48 +0800 (CST) From: Hongyu Wang To: gcc-patches@gcc.gnu.org Cc: ubizjak@gmail.com, hongtao.liu@intel.com Subject: [PATCH v2 00/17] Support Intel APX NDD Date: Tue, 5 Dec 2023 10:29:31 +0800 Message-Id: <20231205022948.504790-1-hongyu.wang@intel.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Received-SPF: softfail client-ip=192.55.52.136; envelope-from=wwwhhhyyy333@gmail.com; helo=mgamail.intel.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS, KAM_SHORT, SPF_HELO_PASS, SPF_SOFTFAIL, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784407564306406766 X-GMAIL-MSGID: 1784407564306406766 Hi, APX NDD patches have been posted at https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636604.html Thanks to Hongtao's review, the V2 patch adds support of zext sematic with memory input as NDD by default clear upper bits of dest for any operand size. Also we support TImode shift with new split helper functions, which allows NDD form split but still restric the memory src usage as in post-reload splitter the register number is restricted, and no new register can be used for shld/shrd. Also fixed several typo/formatting/redundant code. Bootstrapped/regtested on x86_64-pc-linux-gnu{-m32,} and sde. OK for trunk? Hongyu Wang (8): [APX NDD] Restrict TImode register usage when NDD enabled [APX NDD] Disable seg_prefixed memory usage for NDD add [APX NDD] Support APX NDD for left shift insns [APX NDD] Support APX NDD for right shift insns [APX NDD] Support APX NDD for rotate insns [APX NDD] Support APX NDD for shld/shrd insns [APX NDD] Support APX NDD for cmove insns [APX NDD] Support TImode shift for NDD Kong Lingling (9): [APX NDD] Support Intel APX NDD for legacy add insn [APX NDD] Support APX NDD for optimization patterns of add [APX NDD] Support APX NDD for adc insns [APX NDD] Support APX NDD for sub insns [APX NDD] Support APX NDD for sbb insn [APX NDD] Support APX NDD for neg insn [APX NDD] Support APX NDD for not insn [APX NDD] Support APX NDD for and insn [APX NDD] Support APX NDD for or/xor insn gcc/config/i386/constraints.md | 5 + gcc/config/i386/i386-expand.cc | 164 +- gcc/config/i386/i386-options.cc | 2 + gcc/config/i386/i386-protos.h | 16 +- gcc/config/i386/i386.cc | 40 +- gcc/config/i386/i386.md | 2323 +++++++++++------ gcc/testsuite/gcc.target/i386/apx-ndd-adc.c | 15 + gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c | 16 + gcc/testsuite/gcc.target/i386/apx-ndd-sbb.c | 6 + .../gcc.target/i386/apx-ndd-shld-shrd.c | 24 + .../gcc.target/i386/apx-ndd-ti-shift.c | 91 + gcc/testsuite/gcc.target/i386/apx-ndd.c | 202 ++ 12 files changed, 2149 insertions(+), 755 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-adc.c create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-sbb.c create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-shld-shrd.c create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-ti-shift.c create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd.c