From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mxout.security-mail.net (mxout.security-mail.net [85.31.212.42]) by sourceware.org (Postfix) with ESMTPS id 1129F385559C for ; Tue, 12 Sep 2023 10:07:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1129F385559C 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 (localhost [127.0.0.1]) by fx302.security-mail.net (Postfix) with ESMTP id 29C7A4F8026 for ; Tue, 12 Sep 2023 12:07:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kalrayinc.com; s=sec-sig-email; t=1694513278; bh=sMnC04bcmd7PIX8hJT4dmZfIHx10RgJL0kdICBJ4juU=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=A6dzWLpKHJfQpy9bSpNR+wazP0TeqbFI9p/jTLjH779u7RipZhDmI2Jesiyk+XbRK 0w6QmALIgWmS/LU+cwP8dY9tV7XkCnHTAIAIDa1rdnSsdOXAYPLrVv5nIllkx163wm 7HP6b1UDaDmXkPr3coPZrN5YbpKolTcJT1TbSWWk= Received: from fx302 (localhost [127.0.0.1]) by fx302.security-mail.net (Postfix) with ESMTP id 085514F7FD7 for ; Tue, 12 Sep 2023 12:07:58 +0200 (CEST) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01lp0103.outbound.protection.outlook.com [104.47.25.103]) by fx302.security-mail.net (Postfix) with ESMTPS id 873D54F7FD5 for ; Tue, 12 Sep 2023 12:07:57 +0200 (CEST) Received: from PR1P264MB3448.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:184::6) by MRZP264MB2442.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:7::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.35; Tue, 12 Sep 2023 10:07:55 +0000 Received: from PR1P264MB3448.FRAP264.PROD.OUTLOOK.COM ([fe80::ad9:f173:8a66:3461]) by PR1P264MB3448.FRAP264.PROD.OUTLOOK.COM ([fe80::ad9:f173:8a66:3461%7]) with mapi id 15.20.6768.029; Tue, 12 Sep 2023 10:07:53 +0000 X-Virus-Scanned: E-securemail Secumail-id: <74b0.6500387d.8699e.0> ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AZOJjbSc51yGoIa+e13FBxZLfMJISKO7RViGSGvTBGcJ2eOhGZ9qSAoywCtkEpj9aYmoKCBgvLMAGNxqLhcxVt3Po/gUiS+X1MV8gO1mNIY0BIAQLOR/XIkrHBNsh6kASZMjVncwG1L+GfUu7m/73Y6r5uBGlvS2TKjOaife52snkDBccH3vT/J94cC78IKRMbbY4XC9kLF2Pu2h9XhXLvoD+MF3ydOdfdyX3aEx121JxxCKoRbaAXqXOTlsXdxQsd0tLQWDEngQFQIH0bkdl/pcCnW0ZonNbpJhweUltE+qazCi8meaW1Bo7qezHweXfusd14icUERsWMM1YTq5mQ== 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=F8ZNpmdx5yfglDaD4lPdZbZJAywgXJDBmuaGFjmNZ1Y=; b=Gx1NnJ1XqXk1izoRWEP0G0q9iT9KmALyVxqhDLaapaCxzKGQWk2fZAx50xVTmWobN2+k8UqsKMn/VKjJ6NjarwDwuob7CTzbcuUVf7mrt35pXNU4N7H4cbDvrUbiXAKI04r9TwZc7i04xMQ0IIAXXRfOW5nd77YxjqFy7MKMM5QnQ/sBNzUiuNz/8JFJbMCng4jqDXYBVV4LHP34obNucE4eCB8PDzoZcL6z0jNKIsMior32cS4VNbuR4/Q7hqUefPX2z33Urhcun2Ic7Pk61bhO3brXxl+JhO5RngCHCcnDC80hOcJ7/qAo9lrefjzdCmipadmP2UJoATW0xQecxw== 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=F8ZNpmdx5yfglDaD4lPdZbZJAywgXJDBmuaGFjmNZ1Y=; b=aTBmYG5SlKr6qBCaA992mJnWzJK/cQhJkHHZmpn76Wfb+XLilkluwEq9z8reH38t2s5G9UgCaW8kR9PLwSDkZG2u3E4BTBsqVw6vg0dtKKBvVesUXKzHsjORziSpIbVkVnNjw3qe5S7+GUph+nu8sZnpEEIBVnlPX6I5Cy+QrdQTkEcVQ8jsrmeu/lNSXvv7kEOVHpUfhVju0S11EFWALhJVXIVYjmyYe6K7L1a1eCJcqG+BA6VAHQ2eOK0GtQ22hNQjSCWl1srUGrhtZIj0SRocejhVzlvVPjmUmzspvm98GiZDbr1zSFX2l3zQ7uGGTzoWGy4cFBeO6Oarn4eD4A== 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 v2 05/11] Native complex ops: Add the conjugate op in optabs Date: Tue, 12 Sep 2023 12:07:07 +0200 Message-ID: <20230912100713.1074-6-snoiry@kalrayinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230912100713.1074-1-snoiry@kalrayinc.com> References: <20230717090250.4645-10-snoiry@kalrayinc.com> <20230912100713.1074-1-snoiry@kalrayinc.com> X-ClientProxiedBy: LO2P265CA0268.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a1::16) To PR1P264MB3448.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:184::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PR1P264MB3448:EE_|MRZP264MB2442:EE_ X-MS-Office365-Filtering-Correlation-Id: 96f8c275-2549-4c08-69ac-08dbb3782104 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ep49IMyODK17k+i3uiNOZsUvCkWYd2KgQxfLc6/+hYyLB0zceQOhq07klel5vLr7jMccvnHlmduZFRMatZ/yLHs2td3FvPzADi8NK2WU+XdCAgbklOG3fgqEFtHcBwE8TtjeUig9vB7leoVoodG1NOkPaM8CbOlBis6RXGLlaFTLjzrhhWKSguiJDzgF3zk+mK20NAIvToH9TGLxvTC5YP+bYutFOq7pkDvlQSQOUyxI90KmZueoJYPe9DJknLu63hhJNyHRb0NYHDzek0s9okXvw9jbCkIt4x05qsDe0PANGvKG8s+mQ2yfF4E2TYx4gxHzD4hZk4JfNhNtmZCcJBuZlWX+OzR9VDbWJM4E4iy2jvZUhUm44OlsdnUQMSzRcKW4FgWf8jZMpC7CMQex0vcVU7grZgUVlNHYdyQTw5YtOapCy+GAA401tTihv76j59KMWZpQBnjAZclJt3AN1ZMHiJc5q2AMzIHu7qpgThNCkBLfQSXeorzJzrOKCCUSfHRSiE33sMS5bIq+lUNy6hKDFtMuYqBopHg37xq8X4dGJ54ax8f9kekOQrKZGdk5 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR1P264MB3448.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(136003)(366004)(376002)(346002)(396003)(39860400002)(451199024)(186009)(1800799009)(1076003)(107886003)(2616005)(5660300002)(4326008)(8936002)(8676002)(6512007)(26005)(6486002)(6666004)(6506007)(83380400001)(66476007)(66556008)(66946007)(38100700002)(478600001)(41300700001)(6916009)(316002)(36756003)(86362001)(2906002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: RDQ3D9cD9mwH2MKCJy9hhV96FId4cUSANVkB7P4Y1b8zAPNewPqUSOPq4O8SYydO9caZgepLD6SjI7hYZoEQItGJzZ/7nClMQYmHkLYsbGoL2CJgQaY7lfeTA2oRWYC6EVGFcTpxWVYe2B6o/yXsUsxFczHt/+ll0RSLcI4X9PmWgZQQgphNym+uwqeIfVn0M9qogvgP/2PPhf+a/GbRi5g2oEJE8auBXG2rF6stMmo+m8sbMKxATAQlxa6+4wiOMEcCyStbaU0F6w7X/2XFZ/id0KXR2v9CPGd9KLJ6Ow+wq3ds7m7Ek5W8UMg63xmrpGSKTeMdh9Y0oJWAN7YYJIaIxuDspWSA48v+97V27G/1Vg112kMZFV7IwcxF6b4X5fflg6DpGREH0gHeUkIblgxqlQmJnEmpk0BmBSsQIuBTfRD2MvkjhBroK/3EL7iznme4Uer9dFGNGVp8bJyWJLODNuyjMRMJjELCpodhmErIHTi+xDhTNKTboTJs0qrlhzDoJOxpL2sG81k9v4z96v50E6FrwZ0ckgTz4lzYZ/07LflWE356A3la08H1XZmAiS/l8J1GCs5HstByltp+g4yX4MEB1mD4yUG5pOkkTpZHdaL/m1PS1gmNB4lh6w2KTry1LH9E11exo/s3/n7iLO6M0LWc3wxSovNzhOZf/0SfW//FaXL2wjWlNC/3qBkSOxAwM8u9nzmOZJYz/jZabW2+aJ3OvnCighPgYujU1zLetanKSg+WHYndgdD0XdPGl6kIj4HGiKFJYTtIscbLNjt9qzmI/YiCcOA1KBgC+C2QtI312BFhUVVrG3meZEmc8DTmDv12LEnVosll4RU9IfwLfH2wy+Yak2iOmZtpDxGpcuhN1Uq1TK/dVVR7bb4ByP7tQoKVXtXQCtFCRGckp8BDr8FYiC6AfEXdB4kAGX+Xenonk3gTjyqaWfgZzSsm y4VPCfBC80F+EKWwz7GRe5f8Fz2YSDIJRHwoj0Fv+bF+N5Lk4muY6Jlsjdeu0/LPh3aUk4490UCYDffNvY7tyT9vOY85gRO9TeBn3NxIGF41MATB6gRfYqQ5BfW+ytfHptzP0KQzoqBHSBQzXA0+otRWR/FOWoWbo1UFedxYMmsGhbbyJAmaWHSpT1apAvlh4N2S9LN/o58g+JeGGUcaKevc/tBKlv0Pfr3iteURW3MFfmTrTPKcs6SP4Ct3RH/FVpw7CdLyzq5FCHzBkEFONwhL49x0ALqqftZlL6aFQtCkyUyXSeVZaPP9XWSFmpBdXOeABcs6UQjrcOWtMvrTd3MAoMbXgL46MtEJlA930OWP5jDTGVQKxdtzMV6fxo0Bfjl6qX0r/JhnkcPIttO54PucOia/Zm5RybXPUUIQJo06zgt+IrvFXMarD34JUbM2XkN/zwt/NbTTNS65GQAIIxtPF41NyUO/QyyKCrQLwQ5yeXci2rmqgRrHwJ2A7/xSGIz5KbHGx3EoARQMTIvWBa3hKZ5o9c0f8BEEqcRa7oDG8sFT+lDB3S4uL+Rc5Wca90u7jI01FomYDRVCjbb9T2dfdAu6tAeOSZ2D36o6h0ebZhRqhOgoqUMkHx8ib3dnFcK+HVzHbqFQwhhEA4CEkQ== X-OriginatorOrg: kalrayinc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96f8c275-2549-4c08-69ac-08dbb3782104 X-MS-Exchange-CrossTenant-AuthSource: PR1P264MB3448.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2023 10:07:53.5439 (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: 3rV0AdMeWszUTNQ5uSSzuvvzaRVRxyMrtanMSrOiWOuHVbCQo9c9ojINrKpvh6pldolCHAlEInCqlbjAQ0AZ/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRZP264MB2442 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-ALTERMIMEV2_out: done X-Spam-Status: No, score=-12.9 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 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: Summary: 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 01462486631..937c2375133 100644 --- a/gcc/expr.cc +++ b/gcc/expr.cc @@ -10487,6 +10487,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 (); } @@ -12099,6 +12111,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: @@ -12122,7 +12138,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 40bfbb1a5ad..ee5d52a7d50 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 2ccbe4197b7..8405d365c97 100644 --- a/gcc/optabs.def +++ b/gcc/optabs.def @@ -162,6 +162,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..0312b3ea262 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