From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id F17D53858D28; Fri, 24 Mar 2023 22:13:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F17D53858D28 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1679695996; bh=fpZ0WYBB1ZAsQNLblCbgvgvz1n4sR2YWRG29zggFTp4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=EsG+dzlFwdcG0ZFYWEKFv56Z2ghi9MgvMlZ+rV7T2AYM7O93MJkxNIho5LF5cNKK+ ljgJwkVrZWozFGUP5l3x1QXlXeM4ADM2XfwmeUQCvncFEfZB9GPY/khQVrD0KVLzDM /ZW+J6mcrKYYLnI955wRmkKAzH2iS+YlOJJfhbEA= From: "vineet.gupta at linux dot dev" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/109279] [13 Regression] RISC-V: complex constants synthesized vs. fetching from constant pool Date: Fri, 24 Mar 2023 22:13:16 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: unknown X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: vineet.gupta at linux dot dev X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D109279 --- Comment #3 from Vineet Gupta --- We start off with following: (insn 18 17 19 2 (set (reg:DI 154) (mem/u/c:DI (reg/f:DI 155) [0 S8 A64])) "...":9:8 179 {*movdi_64bit} (expr_list:REG_DEAD (reg/f:DI 155) (expr_list:REG_EQUAL (const_int [0x101010101010101]) cse1 matches the new pattern and converts mem to const_int. (insn 18 17 19 2 (set (reg:DI 154) (const_int [0x101010101010101])) "...":9:8 177 {*mvconst_internal} (expr_list:REG_DEAD (reg/f:DI 155) (expr_list:REG_EQUAL (const_int [0x101010101010101]) split1 then does its job, again using the introduced define_insn_and_split "*mvconst_internal" Splitting with gen_split_15 (riscv.md:1677) deleting insn with uid =3D 18. (insn 47 15 48 2 (set (reg:DI 154) (const_int 16842752 [0x1010000])) "...":9:8 -1 (insn 48 47 49 2 (set (reg:DI 154) (plus:DI (reg:DI 154) (const_int 257 [0x101]))) "...":9:8 -1 (insn 49 48 50 2 (set (reg:DI 154) (ashift:DI (reg:DI 154) (const_int 16 [0x10]))) "...":9:8 -1 (insn 50 49 51 2 (set (reg:DI 154) (plus:DI (reg:DI 154) (const_int 257 [0x101]))) "...":9:8 -1 (insn 51 50 52 2 (set (reg:DI 154) (ashift:DI (reg:DI 154) (const_int 16 [0x10]))) "...":9:8 -1 (insn 52 51 19 2 (set (reg:DI 154) (plus:DI (reg:DI 154) (const_int 257 [0x101]))) "...":9:8 -1 (expr_list:REG_EQUAL (const_int [0x101010101010101])=