From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpout140.security-mail.net (smtpout140.security-mail.net [85.31.212.148]) by sourceware.org (Postfix) with ESMTPS id A6FC43857C51 for ; Mon, 17 Jul 2023 09:03:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A6FC43857C51 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=kalrayinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kalrayinc.com Received: from localhost (fx408.security-mail.net [127.0.0.1]) by fx408.security-mail.net (Postfix) with ESMTP id 97D18322A27 for ; Mon, 17 Jul 2023 11:03:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kalrayinc.com; s=sec-sig-email; t=1689584625; bh=2Dk4nBBGxxvTm01/y0qimYxMlBMYRL+R9pUSbBye8eM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=mhdtMGB+4o1E0K/NdJTubeumZN0iPJvsUSZne1okts6T/LQP/sy6MqAoJbrH+ohUD 19xUMKOYC4Lw3EZskrIqyElkyj4EUYO6G/Hd9JktPMmPYlqaTZey/md6Lxl2Bf68DP RMv/ezG+FDqeqZhPrCXs4E+Zhp7gqtoymoeGvSp0= Received: from fx408 (fx408.security-mail.net [127.0.0.1]) by fx408.security-mail.net (Postfix) with ESMTP id 76A52322A10 for ; Mon, 17 Jul 2023 11:03:45 +0200 (CEST) Received: from FRA01-PR2-obe.outbound.protection.outlook.com (mail-pr2fra01lp0103.outbound.protection.outlook.com [104.47.24.103]) by fx408.security-mail.net (Postfix) with ESMTPS id D75E6322A05 for ; Mon, 17 Jul 2023 11:03:44 +0200 (CEST) Received: from MR2P264MB0113.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:11::21) by PAZP264MB3040.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1e7::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.32; Mon, 17 Jul 2023 09:03:44 +0000 Received: from MR2P264MB0113.FRAP264.PROD.OUTLOOK.COM ([fe80::a854:17f0:8f2a:f6d9]) by MR2P264MB0113.FRAP264.PROD.OUTLOOK.COM ([fe80::a854:17f0:8f2a:f6d9%4]) with mapi id 15.20.6588.031; Mon, 17 Jul 2023 09:03:44 +0000 X-Virus-Scanned: E-securemail Secumail-id: <5fd2.64b503f0.d6b9f.0> ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K6DfvX8qd19jBXT2oleLZMHwQDlBn9YqsF4cMQFr0Dv4bgDbFoKNQsp8gmAok0JKWaWkf0EhniHSXefB92+LsghJIEmI9Ojq0jctL6bes2FFiGJXYRZr3CbBoTyplI0Um+Iqj7+mGeoXr0l/UyBEVk2dkm9TgToNrnAhlxJdxDama93bXsItMyrG1KLECj7V6GKeUzwGbSme86nFzMXOx8GEjY/UQKp6lCozbkwXgE+w20MQ5DB1Ql+ymdBUqmoYfopOOVjwvRdjBgWYDnNXD3MibTKeO9DC4dB6+eEiwkP2PMQ39tEgbxS9+eGXAj3JNAXN/9qN0ziIASvLAhiMpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LyCGd2ahE0MXZ/vPA6MNXoJgNDB5pXUp7FYF1rq8xHA=; b=JxQegIN66D0Zhw2PRp2Tcz/nRaP4Xo+sWKVOMvbsj5HGxMN0hlrV4PQ6GnzkmIksyeZZH8TvD//2E4OFdYQUJ7E5zWnAyuScxbYTVKq4uR9L2j0a7Ey187pz8vZo5UF3Od1WzlsDGSCCpIaTuU3m2dyS9Pyr+MoLroRuveHU9+hVSXpu78JUq0e7m7wU6SaSAgWoErmdrwMXc5psWAsyTTggfSGpAw6hFMjT+rsKF8BE8P3SD2t0wrAmbh16lbSIQMsOn90iJyp3PqJmKC++p9ahatqzNFu4CltuAg+31HFu3w3KtaJ0Vx4uDeT0QE6rcJoKQyDc7rHNYPolQ4gpfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=kalrayinc.com; dmarc=pass action=none header.from=kalrayinc.com; dkim=pass header.d=kalrayinc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kalrayinc.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LyCGd2ahE0MXZ/vPA6MNXoJgNDB5pXUp7FYF1rq8xHA=; b=hWikJ6Q5r9T097Z92UKXV07T3m0cU1UeDGvIl96objpCg8GVQiuXQo1f1zTfOS99/y4c/TCeOTCtoGjHaA32A2SrZzLuWZSK+cZcoVRbTnz5i7OaC8gKSeJAYgOoJAruUQFaLPi31YOYlzEGgBAOMV8x6zLJ3mRJz7HlcNo7+388QZIQ38oWeBX3yDTl9y/JLPfGQRnsti+UkWaQzE+FVAMJzfPSLOSmFBJBjz0MrLpgdQ82fgaNOq21ww8RIWNEzsZDPCyOaV5RxRQam1ewNYs1lOUd3fcDWNe7+XJcx52OM76vz5TLZsLM2CtbhPmTvwnU8iUSvoH9vOOKtSPEsA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=kalrayinc.com; From: Sylvain Noiry To: gcc-patches@gcc.gnu.org Cc: Sylvain Noiry Subject: [PATCH 5/9] Native complex operations: Add the conjugate op in optabs Date: Mon, 17 Jul 2023 11:02:46 +0200 Message-ID: <20230717090250.4645-6-snoiry@kalrayinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230717090250.4645-1-snoiry@kalrayinc.com> References: <20230717090250.4645-1-snoiry@kalrayinc.com> X-ClientProxiedBy: LO2P265CA0173.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a::17) To MR2P264MB0113.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:11::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MR2P264MB0113:EE_|PAZP264MB3040:EE_ X-MS-Office365-Filtering-Correlation-Id: c6bbe664-3d40-4703-1570-08db86a4b903 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XZPZ1tulEDK+udmA3z+yxuTHPKWeXqgs5Mqgf5CmnbnPCNxjzZSO2e0WDVbig0GHunsc8Wxri+oQlBU9Gf8f3U7NDE+vQ0do72TGoO7GYdbYXCrLt9nGRG8BJ7Lc1MhSJldD8RM8crbTub0v+ElmFr/acn9txk7tbzT6WScmU8VWMRKcqpjuqEKHyutjLno+xqnzhlxcXZxzHj7LDBTDMPl0yXjDHwyMUFquUo5qEFszagzopkr6REHwunl5bbUdSLhQ4TNZeuW8gvdJ4Nvk3/z6oWeoxq2yxBbapskeo+oxp4V5aPgdgbyvBTBAKoZiSZPWcas4OuXRC05w2vPdmhhh5tANqq91tYBvTlRLcVYZwBgCVryNmVUt7VyjH9SB5FpXlcXpFWjz8PBg2mXckPfQbIXmh6T2yTaYw9os4hQKRa6QQGg5RgaFZLlT/j6yRTbpAR17/lQyBFgldOSl11CF9yddE5K19uAajpKkassJYpMEO1Ei/7PxA6HT8qKb8StIWBHUOXFs6R8ivkiZYLtg+SR3bLkyMkomJQiSQuSaB6yTY7pneFQthb0wNhh5 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MR2P264MB0113.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(366004)(346002)(136003)(39850400004)(376002)(451199021)(478600001)(6486002)(186003)(1076003)(6506007)(26005)(6512007)(107886003)(2906002)(41300700001)(316002)(6916009)(4326008)(66476007)(66946007)(66556008)(5660300002)(36756003)(8676002)(8936002)(38100700002)(86362001)(2616005)(83380400001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: r1rFbUIrS+HRDPGF6sn2uVU2GbiwCBAcvC82wBdRrJ/f4lqZDFuyE6bwW8GyKz2OJAa7jaSL6a5XiAWK2wcwXnDWsL4MR+v8WKmNS5itwiTFx6z28MaWemBTgCMFdCc3ZA78S4guc4sQfKqZ40xPiuGPSub1Ho0GpUhvW4uupEjHva6gOluErD1+l/tkxPa/LPC4y1hS3jpP7siMMgkuGM9Q4qhmCSiQGkZjN4HkkjqO4a6hbNLs1ER/haZ1j0zRj73p4dmzreGTY9ERhqzONQYYXhOGKiuB94vsOW62N/uRkwjE6Sx+ifotpiOH9xbv3fsD80kCEZEArcwUNME3WyMhlnPcv9qOMuKk8+FB2NHbYr4E/PFFUMpZNsWBnemLKeVY0hcPDmGo/Dqi0uPc9J57u88JIOao7byBszSNluRqfxMu7kCO/sGoUG3sD6inAshZ+pnu0jL0CmceBNjEumyjb77sxtPFFpvoSD6qxfqXXiw0X+6Ld//2RbhO9f8xnLo7cY1vFg9f9uGvNGmwlk6ObwlSx139cofosgjQkovtXW4UpJju7YKRS0en0G/MkgmCI4hXa6w+390Opn2yfUXBHhNIXvQX3kSjqAXU6Tgjc8wUmCjVxBZLZRQxSq7RYC1IfrEj+2OqpbEWLgSoB12muW4YivASNwYeqNgWh47hYtS2KQJ/NDMYtZkh3AvRbragmGF3t14tqmQuGvXpOyUKWkpJVfowNW3dShi1jYzQsBLZJpGXSYRR8jJI2DH9DaD7UJ9S0Da2RuPj1kHSPP+kSrX5z9mu2mW3PNsMreyJOaYcOAO/McYp5qPBMtZ5+8Xk7VGs7EbaTwOmpGhSZETsz+h1RcuNG5/WCqk/Noe6kTTUxwWKS4iFmKb9NThYC5eUqn/WZyUPcvPXJMR8vpoJQgoHkMvtRfueldl/6vC8zcTgwyHN4WpCMO6999nY 3DOkon31D1EGauIivNbNz1qG6XhrjS1r8hmIPEwrJQQkzWJ4HlsDMJMQabskMg2kYTfkbyBY8jI24BNH9gN3GoFy0slry7SDTY+aMlUxWEPTl9dUYJUOyU+sUyR3ie+w0ADDGidACEGsIXjALO/TN3Y7XyrFalzW91DyRQLm3onzY0tygXmcy5gkRe/Y3377Ly9nV/xaQGTnlvrkzIRvMYeUVyNA+WdSubWNUFLsH1h02lQw/Mr2T4oF0GDKaNSi20V6zlRKG8MD1h1CdKT/aOS2BfUalYFX4LhqB1JfaHersDW9E1B6CJ+m5jX0a37lbHLnRBUfoAcx6N/mxebBRtDHweQWbaHCb4/fRxqXezqPkvlV6owxR+MKnRnSSYhoFHl3Ox+esIbhBw2R/cdSw19t4QKkAiIxrf4+jTLA79qNxW+wiDkCnjeuA3OoGeaGmxe7cHRrGTR87FHbDpVguLCVCj+gSOPT7UXRZgZ4IDNQtq03r3aEDSnxj4axPP7eSFA5E/oo83Esdu2DFq5cM54ROZyEYKPTJpRThS//4nqufN1iY7veC5PxCgyrXpyo/vlufzi1m0HaT5rGb1UedMr8oUSvq+CGznVqm83fHBmswurau1QoGD0Sg+DZl2EK X-OriginatorOrg: kalrayinc.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6bbe664-3d40-4703-1570-08db86a4b903 X-MS-Exchange-CrossTenant-AuthSource: MR2P264MB0113.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2023 09:03:44.0770 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8931925d-7620-4a64-b7fe-20afd86363d3 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oR6kWcRvobEoKKxr/0QsUmisEmGuyYJqqWNbReQz/Q4r0cof3HAeeXpr2p9iHtkE/Nt379xNxAcRAzH4SWUosA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAZP264MB3040 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-ALTERMIMEV2_out: done X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Add an optab and rtl operation for the conjugate, called conj, to expand CONJ_EXPR. gcc/ChangeLog: * rtl.def: Add a conj operation in rtl * optabs.def: Add a conj optab * optabs-tree.cc (optab_for_tree_code): use the conj_optab to convert a CONJ_EXPR * expr.cc (expand_expr_real_2): Add a case to expand native CONJ_EXPR (expand_expr_real_1): Likewise --- gcc/expr.cc | 17 ++++++++++++++++- gcc/optabs-tree.cc | 3 +++ gcc/optabs.def | 3 +++ gcc/rtl.def | 3 +++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/gcc/expr.cc b/gcc/expr.cc index e94de8a05b5..be153be0b71 100644 --- a/gcc/expr.cc +++ b/gcc/expr.cc @@ -10498,6 +10498,18 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode, return dst; } + case CONJ_EXPR: + op0 = expand_expr (treeop0, subtarget, VOIDmode, EXPAND_NORMAL); + if (modifier == EXPAND_STACK_PARM) + target = 0; + temp = expand_unop (mode, + optab_for_tree_code (CONJ_EXPR, type, + optab_default), + op0, target, 0); + gcc_assert (temp); + return REDUCE_BIT_FIELD (temp); + + default: gcc_unreachable (); } @@ -12064,6 +12076,10 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode, op0 = expand_normal (treeop0); return read_complex_part (op0, IMAG_P); + case CONJ_EXPR: + op0 = expand_normal (treeop0); + return op0; + case RETURN_EXPR: case LABEL_EXPR: case GOTO_EXPR: @@ -12087,7 +12103,6 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode, case VA_ARG_EXPR: case BIND_EXPR: case INIT_EXPR: - case CONJ_EXPR: case COMPOUND_EXPR: case PREINCREMENT_EXPR: case PREDECREMENT_EXPR: diff --git a/gcc/optabs-tree.cc b/gcc/optabs-tree.cc index e6ae15939d3..c646b3667d4 100644 --- a/gcc/optabs-tree.cc +++ b/gcc/optabs-tree.cc @@ -271,6 +271,9 @@ optab_for_tree_code (enum tree_code code, const_tree type, return TYPE_UNSIGNED (type) ? usneg_optab : ssneg_optab; return trapv ? negv_optab : neg_optab; + case CONJ_EXPR: + return conj_optab; + case ABS_EXPR: return trapv ? absv_optab : abs_optab; diff --git a/gcc/optabs.def b/gcc/optabs.def index 3dae228fba6..31475c8afcc 100644 --- a/gcc/optabs.def +++ b/gcc/optabs.def @@ -160,6 +160,9 @@ OPTAB_NL(umax_optab, "umax$I$a3", UMAX, "umax", '3', gen_int_libfunc) OPTAB_NL(neg_optab, "neg$P$a2", NEG, "neg", '2', gen_int_fp_fixed_libfunc) OPTAB_NX(neg_optab, "neg$F$a2") OPTAB_NX(neg_optab, "neg$Q$a2") +OPTAB_NL(conj_optab, "conj$P$a2", CONJ, "conj", '2', gen_int_fp_fixed_libfunc) +OPTAB_NX(conj_optab, "conj$F$a2") +OPTAB_NX(conj_optab, "conj$Q$a2") OPTAB_VL(negv_optab, "negv$I$a2", NEG, "neg", '2', gen_intv_fp_libfunc) OPTAB_VX(negv_optab, "neg$F$a2") OPTAB_NL(ssneg_optab, "ssneg$Q$a2", SS_NEG, "ssneg", '2', gen_signed_fixed_libfunc) diff --git a/gcc/rtl.def b/gcc/rtl.def index 88e2b198503..4280f727286 100644 --- a/gcc/rtl.def +++ b/gcc/rtl.def @@ -460,6 +460,9 @@ DEF_RTL_EXPR(MINUS, "minus", "ee", RTX_BIN_ARITH) /* Minus operand 0. */ DEF_RTL_EXPR(NEG, "neg", "e", RTX_UNARY) +/* Conj operand 0 */ +DEF_RTL_EXPR(CONJ, "conj", "e", RTX_UNARY) + DEF_RTL_EXPR(MULT, "mult", "ee", RTX_COMM_ARITH) /* Multiplication with signed saturation */ -- 2.17.1