From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yb1-xb33.google.com (mail-yb1-xb33.google.com [IPv6:2607:f8b0:4864:20::b33]) by sourceware.org (Postfix) with ESMTPS id 90BB93858D1E for ; Mon, 17 Jul 2023 06:05:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 90BB93858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-yb1-xb33.google.com with SMTP id 3f1490d57ef6-bfe6ea01ff5so4413280276.3 for ; Sun, 16 Jul 2023 23:05:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689573914; x=1692165914; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=WHuTuKVlgFrhPYVjaySd2K/Jzqt4Bk2Xk1t0hOmA+dg=; b=ad8EpbAdcGckN9dRwo39eQid52JSmdl7RESct2Yzcc8ueyHgnduCC7ZESwaGVfyCkA jlvKPMJsvbxJkWNY2dZfSHe6spDdaW7hHmYD2dQejc+t1ukYZ0jNB7vNxw6Cgv0+NIGW Kny1s13K1HkZVVJksjpht7wZaWIGjgGXQKNoPi9bCaP04j+KLE5uMNPl1pf7dHpviIqV kKVitIARy6Lh7aWaK6Nt3rhFd8zmzOPgqJJLQn4lw1p11rwafXXc92VtxAWdUhkONl1q XLIkv/r1zjACGtf2XVSe+OFiaQRiNwcxI6J2xJG0u15/DvoAuszbr+EF8GTQPjB4uN2c n99g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689573914; x=1692165914; h=content-transfer-encoding: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=WHuTuKVlgFrhPYVjaySd2K/Jzqt4Bk2Xk1t0hOmA+dg=; b=DEDK4drOfvn3jVMLyOmI/lIHkh5eYNDFltIgJvDVNT9NcHIAWfO4m1kMWL52zDTkp0 d/ZEJpAiWHmpGdBDqXdlrgeVtMjXdq778Zg7BWpCJeOZ6YIM8OGs0tEZ8Gz3EAYDCxJb GTy0y8OQZJtIa2x3fkeVLLqCX67vSQXuE3aNpms+bQEnF8hQ/l8BJMV+6p/XQa8wyNr8 T4vkH6stRaombtrrCSMst5TCUbI9yTA4LmnheSIClx51JqJ4BV4BhNp+L3P9yXJXnVYH GkVb+8jB1uQGVrHzGa5miG4jxy++xLp1FNE/AKpqWHtOaDa1GJkce7rla/43fGncNJwZ nMHQ== X-Gm-Message-State: ABy/qLa1CSpEeLoXqxCTfmz8a2AZMwgdKA0osLLTPdmSBAGiD60HvaUW EvrXxXyigbtRhZctgupniuomckLekN0azx3+qJc= X-Google-Smtp-Source: APBJJlEbCUTnb42zgOIHZg4q1w6DM/Am4KFAePaB9qPqQII+/70JspCIyB/oYVqquJTbsfJ2oD6uiID9LpWGUjrDENo= X-Received: by 2002:a25:938e:0:b0:ccc:3bd5:889e with SMTP id a14-20020a25938e000000b00ccc3bd5889emr5431530ybm.18.1689573914083; Sun, 16 Jul 2023 23:05:14 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Hongtao Liu Date: Mon, 17 Jul 2023 14:12:08 +0800 Message-ID: Subject: Re: [PATCH] x86: avoid maybe_gen_...() To: Jan Beulich Cc: "gcc-patches@gcc.gnu.org" , Hongtao Liu , Kirill Yukhin Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,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: On Fri, Jul 14, 2023 at 5:42=E2=80=AFPM Jan Beulich via Gcc-patches wrote: > > In the (however unlikely) event that no insn can be found for the > requested mode, using maybe_gen_...() without (really) checking its > result for being a null rtx would lead to silent bad code generation. Ok. > > gcc/ > > * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate): > Use gen_vec_set_0. > (ix86_expand_vector_extract): Use gen_vec_extract_lo / > gen_vec_extract_hi. > (expand_vec_perm_broadcast_1): Use gen_vec_interleave_high / > gen_vec_interleave_low. Rename local variable. > > --- a/gcc/config/i386/i386-expand.cc > +++ b/gcc/config/i386/i386-expand.cc > @@ -15456,8 +15456,7 @@ ix86_expand_vector_init_duplicate (bool > { > tmp1 =3D force_reg (GET_MODE_INNER (mode), val); > tmp2 =3D gen_reg_rtx (mode); > - emit_insn (maybe_gen_vec_set_0 (mode, tmp2, > - CONST0_RTX (mode), tmp1)); > + emit_insn (gen_vec_set_0 (mode, tmp2, CONST0_RTX (mode), tm= p1)); > tmp1 =3D gen_lowpart (mode, tmp2); > } > else > @@ -17419,9 +17418,9 @@ ix86_expand_vector_extract (bool mmx_ok, > ? gen_reg_rtx (V16HFmode) > : gen_reg_rtx (V16BFmode)); > if (elt < 16) > - emit_insn (maybe_gen_vec_extract_lo (mode, tmp, vec)); > + emit_insn (gen_vec_extract_lo (mode, tmp, vec)); > else > - emit_insn (maybe_gen_vec_extract_hi (mode, tmp, vec)); > + emit_insn (gen_vec_extract_hi (mode, tmp, vec)); > ix86_expand_vector_extract (false, target, tmp, elt & 15); > return; > } > @@ -17435,9 +17434,9 @@ ix86_expand_vector_extract (bool mmx_ok, > ? gen_reg_rtx (V8HFmode) > : gen_reg_rtx (V8BFmode)); > if (elt < 8) > - emit_insn (maybe_gen_vec_extract_lo (mode, tmp, vec)); > + emit_insn (gen_vec_extract_lo (mode, tmp, vec)); > else > - emit_insn (maybe_gen_vec_extract_hi (mode, tmp, vec)); > + emit_insn (gen_vec_extract_hi (mode, tmp, vec)); > ix86_expand_vector_extract (false, target, tmp, elt & 7); > return; > } > @@ -22501,18 +22500,18 @@ expand_vec_perm_broadcast_1 (struct expa > if (d->testing_p) > return true; > > - rtx (*maybe_gen) (machine_mode, int, rtx, rtx, rtx); > + rtx (*gen_interleave) (machine_mode, int, rtx, rtx, rtx); > if (elt >=3D nelt2) > { > - maybe_gen =3D maybe_gen_vec_interleave_high; > + gen_interleave =3D gen_vec_interleave_high; > elt -=3D nelt2; > } > else > - maybe_gen =3D maybe_gen_vec_interleave_low; > + gen_interleave =3D gen_vec_interleave_low; > nelt2 /=3D 2; > > dest =3D gen_reg_rtx (vmode); > - emit_insn (maybe_gen (vmode, 1, dest, op0, op0)); > + emit_insn (gen_interleave (vmode, 1, dest, op0, op0)); > > vmode =3D V4SImode; > op0 =3D gen_lowpart (vmode, dest); --=20 BR, Hongtao