From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id C4A053858D32; Mon, 19 Jun 2023 12:51:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C4A053858D32 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1687179118; bh=QtAV7uLob8GW3wZDog1xIdM72gV1xK83H14IlJoMmag=; h=From:To:Subject:Date:In-Reply-To:References:From; b=pfqRl1tqEkN/hGokUAD9etMy6t0v1+MD2fwug0T4P3dJNmNvY03vlcO2czmah+adN x+DPD1vsea96AUaJw4Er2w3wNXFhlCnKbnXQ3yL5XV0QeZViUDWMneR/Eja8TBl+Fc CA6BJoO4F6fYrGrHJv5WvnaDU9zUGkRYatGCNjp8= From: "m.cencora at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/110303] With -O0, _mm_shuffle_epi32 with a constexpr function argument does not compile Date: Mon, 19 Jun 2023 12:51:58 +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: 13.2.1 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: m.cencora at gmail dot com X-Bugzilla-Status: RESOLVED X-Bugzilla-Resolution: DUPLICATE 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: cc 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=3D110303 m.cencora at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |m.cencora at gmail dot com --- Comment #6 from m.cencora at gmail dot com --- (In reply to Denis Yaroshevskiy from comment #4) > > so _mm_shuffle_epi32 requires a constant but since it is an argument, t= he argument, it is not a constant expression requirement. >=20 > The function is marked constexpr. So it can be a constant if you ask it. constexpr at function declaration means that it COULD be evaluated in compi= le time, but doesn't force it. To force it either invoke it in a context that requires a compile-time evaluation (e.g. static_assert, or initializer of constexpr variable), or m= ark it as consteval instead.=