From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 5296A397247B; Thu, 10 Sep 2020 19:33:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5296A397247B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1599766395; bh=kXLvBm/UB0fdeLnENLpUQC/GJfU+MGzlbL0c7t98KO8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=m99ZPNELOrKyWHuWVCg6P/hdc3v2BLOvNAulR+2StfPnF68YbYKNkmWLyhzI8ON7x uFynKgDBdsA+VU/5sYprpB1RBg6CTxWQ7FqesxUOGvuHUQValnsX4BYMCyeRs0PD73 2j8JyHLTeaHQCl+0qnfsCkZJmJTRN8p3Vsmzqq3U= From: "vries at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/97004] [nvptx] __int128 initializer incorrect Date: Thu, 10 Sep 2020 19:33:15 +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: 11.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: vries at gcc dot gnu.org X-Bugzilla-Status: RESOLVED X-Bugzilla-Resolution: FIXED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 11.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: resolution bug_status target_milestone 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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Sep 2020 19:33:15 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D97004 Tom de Vries changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED Target Milestone|--- |11.0 --- Comment #4 from Tom de Vries --- (In reply to Jakub Jelinek from comment #2) > (In reply to Tom de Vries from comment #1) > > Tentative patch: > > ... > > diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c > > index 0376ad6ce9f..26868590322 100644 > > --- a/gcc/config/nvptx/nvptx.c > > +++ b/gcc/config/nvptx/nvptx.c > > @@ -2054,7 +2054,11 @@ nvptx_assemble_value (unsigned HOST_WIDE_INT val, > > unsigned size) > >=20=20 > > for (unsigned part =3D 0; size; size -=3D part) > > { > > - val >>=3D part * BITS_PER_UNIT; > > + if (part =3D=3D sizeof (val)) >=20 > That assumes that CHAR_BIT =3D=3D BITS_PER_UNIT, which is mostly the case= , but > shouldn't be relied on. > Perhaps just use > val >>=3D (part * BITS_PER_UNIT / 2); > val >>=3D (part * BITS_PER_UNIT / 2); > or if (part * BITS_PER_UNIT =3D=3D sizeof (val) * CHAR_BIT) > Though, as val is unsigned HOST_WIDE_INT, we already have a macro for tha= t, > so if (part * BITS_PER_UNIT =3D=3D HOST_BITS_PER_WIDE_INT) ? I went with the last suggestion, thanks for the review. Patch committed to trunk, no test-case required. Marking resolved-fixed.=