From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) by sourceware.org (Postfix) with ESMTPS id D92603858D33 for ; Mon, 29 Apr 2024 06:37:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D92603858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D92603858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::632 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714372641; cv=none; b=O0W9BH5vFk5Hr6Sq3F5TgPIC00wmFVPPO6xvdttfW1gx1b0DfzC4XfWpSC3Otfy+++TzUPDuvlc2xe8k9trskVjG/Fe8B+YLzywh5ObiuAo28jUIvr+E/7NXGhNjcrRTUiXmFJTocUQAKQKUre75cYLVD3M0Oclq9K2G3XnZIgg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714372641; c=relaxed/simple; bh=o8wT1VkdgD75o8JJVf0Psu6gmhl7klP0m4jrvkgACPA=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=V9m53vpRfMEQ0rMzvZgohm2TW5hWSQWnf1opL2RvNuwQKuSUlVsy1G+MSQi3x6tHbgxMrPZEXzzwwWHbe3glBZJu0WlsHLUCD0Vvppuw0YZabSWOGaWH6pf8wphhAtFhbY6QbymoVWJl9/EUTIa1mhOye9KPVW753m6NPUEXu40= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-a58fbbcd77aso89971366b.2 for ; Sun, 28 Apr 2024 23:37:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714372638; x=1714977438; darn=gcc.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Wsa9tCA1cpbADniIsnofdFM6X/DLNt5i8zekGfjMM2Q=; b=GWXJKpzT2Bp6ZyBAxCZeK+iIm1VbwtYIQFVyfrKPNsSP4d/dxi8689TNMpbbqAlwzx PTQg90y7gPF7UfFddrfrn+LbzYb7TbUnyZ12NnT26BN+kb0Hm1CgO3/5DN8yO8FbSEY/ tMXwrk44aJr6quP+xuZ96L5CPI2UK4TFkgDvD7kP4E4Y7chJX/f6sSwzX/WNsROmL6jx YpLGysCF7KCxXMwKGnlcFJvNxJcOOMA1ZVY2zQdGhcRVsXOyg8qu2gxBQtQKxiVeug6K pqihCIVejI/Fo8CvgSSudpEOigaM4bv77h0Lqam07qkgmjK+Jt6EDJYjt6hqrS8kmamQ ZBUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714372638; x=1714977438; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Wsa9tCA1cpbADniIsnofdFM6X/DLNt5i8zekGfjMM2Q=; b=NtDAQyAp2JDu1MNe/3uV9WmqbM95k97Cp1mAcKqq9D5fBlwmlsT3sYYe5GntvSx9Mc xuBHFuWFBV/7JMV8JnPa5Vl0ySYS8Nto389a/SG8E3YqbOAdQXlwtCNGGtGNKSYDp852 V4iE+wgceTdWiaz+IIwS6A18kuJ4UUs6Ri4RubNzIDo2X+c6euJvMjz4ya0dp0hgd/dw 7IyBO3JGxNQRHE4C4mAfsp/5DRN6pSR5yiT6VS/APGiECQ+zaL8qBBWwQzkx/42uihw3 wHkHUJ/e5Lr7N1/vFZt7hdLVKymDcMc+rx61hQ07dGuZ3DiJivK97+a+4a8TpdtlaUcn /WBg== X-Forwarded-Encrypted: i=1; AJvYcCVis3IgIrl1ia4u/uIC9rHM8WNpEIfdvB9Fs81rIAviGUcBT09CCZiLTtOahorThj1jlBQYKApG364oqcBcO85y7TLiN9fHfw== X-Gm-Message-State: AOJu0YynG/5JO8CCmKQYZ3Ot9yOVQMd+0cDT9tjxQN4m0UNDc9P2SQHL PbA4t5+Q++TThXQRZZAufbqknbtY8/KGZWK3BF1R3JogTzP7FuwA8xpBT1bNhhvrCKCafSJnbNy iYjkc2r068iwaw/j1/5kbndH5gf4= X-Google-Smtp-Source: AGHT+IF58uK+5Xj3k423wfRp95bsFv1YY1/XiK+bvdkezRdaZZgQb659wCXz2iNiZ+3HFmEucOUsOZYbMVZ+v5UDYpA= X-Received: by 2002:a17:906:e21a:b0:a55:b27c:1299 with SMTP id gf26-20020a170906e21a00b00a55b27c1299mr4423898ejb.70.1714372638066; Sun, 28 Apr 2024 23:37:18 -0700 (PDT) MIME-Version: 1.0 References: <20240428035321.283941-1-pan2.li@intel.com> <3B41D6784D041B3E+202404281155358620832@rivai.ai> In-Reply-To: <3B41D6784D041B3E+202404281155358620832@rivai.ai> From: Kito Cheng Date: Mon, 29 Apr 2024 14:37:06 +0800 Message-ID: Subject: Re: [PATCH v1] RISC-V: Fix ICE for legitimize move on subreg const_poly_move To: "juzhe.zhong@rivai.ai" Cc: "pan2.li" , gcc-patches Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-8.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,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: > diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc > index 0519e0679ed..bad23ea487f 100644 > --- a/gcc/config/riscv/riscv.cc > +++ b/gcc/config/riscv/riscv.cc > @@ -2786,6 +2786,44 @@ riscv_v_adjust_scalable_frame (rtx target, poly_int64 offset, bool epilogue) > REG_NOTES (insn) = dwarf; > } > +/* Take care below subreg const_poly_int move: > + > + 1. (set (subreg:DI (reg:TI 237) 8) > + (subreg:DI (const_poly_int:TI [4, 2]) 8)) > + => > + (set (subreg:DI (reg:TI 237) 8) > + (const_int 0)) */ > + > +static bool > +riscv_legitimize_subreg_const_poly_move (machine_mode mode, rtx dest, rtx src) > +{ > + gcc_assert (SUBREG_P (src) && CONST_POLY_INT_P (SUBREG_REG (src))); > + gcc_assert (SUBREG_BYTE (src).is_constant ()); > + > + int byte_offset = SUBREG_BYTE (src).to_constant (); > + rtx const_poly = SUBREG_REG (src); > + machine_mode subreg_mode = GET_MODE (const_poly); > + > + if (subreg_mode != TImode) /* Only TImode is needed for now. */ > + return false; > + > + if (byte_offset == 8) > + { /* The const_poly_int cannot exceed int64, just set zero here. */ { /* The const_poly_int cannot exceed int64, just set zero here. */ New line for the comment. > + emit_move_insn (dest, CONST0_RTX (mode)); > + return true; > + } > + > + /* The below transform will be covered in somewhere else. > + Thus, ignore this here. > + 1. (set (subreg:DI (reg:TI 237) 0) > + (subreg:DI (const_poly_int:TI [4, 2]) 0)) > + => > + (set (subreg:DI (reg:TI 237) 0) > + (const_poly_int:DI [4, 2])) */ > + > + return false; > +} > + > /* If (set DEST SRC) is not a valid move instruction, emit an equivalent > sequence that is valid. */ > @@ -2839,6 +2877,11 @@ riscv_legitimize_move (machine_mode mode, rtx dest, rtx src) > } > return true; > } > + > + if (SUBREG_P (src) && CONST_POLY_INT_P (SUBREG_REG (src)) > + && riscv_legitimize_subreg_const_poly_move (mode, dest, src)) > + return true; > + > /* Expand > (set (reg:DI target) (subreg:DI (reg:V8QI reg) 0)) > Expand this data movement instead of simply forbid it since > -- > 2.34.1 > >