From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 35C8D385700E; Thu, 23 Mar 2023 01:51:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 35C8D385700E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1679536272; bh=OaRsyrNSvFED0EI9c1jfmQGBC8nbgYElP+BoRVw5qn0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=W0/8vQOXDHXHwABOA/RnzEa4SYPq52ohrOcOzVKzt2qQw/Yl+FAJ4ZROCgxbHAx0a 4JJhrgTk0TlYRmtIcRdgaQAWebxmHrMc7anfA1UIDtdv2ix0EbbGlGv3Lv77KsVdvj S+dW6BUywvHH0FTHKE9wDWPR5VrrunXCtnNnZWzs= From: "kito at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/109244] internal compiler error: in setup_preferred_alternate_classes_for_new_pseudos, at ira.cc:2892 Date: Thu, 23 Mar 2023 01:51:11 +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.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: kito at gcc dot gnu.org 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=3D109244 --- Comment #4 from Kito Cheng --- Gonna commit the fix soon, and following code is the reduced case which is reduced from your attachment. Reduced case (reduced by creduce) typedef int a; using c =3D float; template < typename > using e =3D int; #pragma riscv intrinsic "vector" template < typename, int, int f > struct aa { using g =3D int; template < typename > static constexpr int h() { return f; } template < typename i > using ab =3D aa< i, 0, h< i >() >; }; template < int f > struct p { using j =3D aa< float, 6, f >; }; template < int f > struct k { using j =3D typename p< f >::j; }; template < typename, int f > using ac =3D typename k< f >::j; template < class ad > using l =3D typename ad::g; template < class g, class ad > using ab =3D typename ad::ab< g >; template < class ad > using ae =3D ab< e< ad >, ad >; template < int m > vuint32mf2_t ai(aa< a, m, -1 >, a aj) { return __riscv_vmv_v_x_u32mf2(aj, 0); } template < int m > vfloat32mf2_t ai(aa< c, m, -1 >, c); template < class ad > using ak =3D decltype(ai(ad(), l< ad >())); template < class ad > ak< ad > al(ad d) { ae< decltype(d) > am; return an(d, ai(am, 0)); } template < typename g, int m > vuint8mf2_t ao(aa< g, m, -1 >, vuint32mf2_t = n) { return __riscv_vreinterpret_v_u32mf2_u8mf2(n); } template < int m > vuint32mf2_t ap(aa< a, m, -1 >, vuint8mf2_t n) { return __riscv_vreinterpret_v_u8mf2_u32mf2(n); } template < typename g, int m > vuint8mf2_t ao(aa< g, m, -1 >, vfloat32mf2_t= n) { return __riscv_vreinterpret_v_u32mf2_u8mf2( __riscv_vreinterpret_v_f32mf2_u32mf2(n)); } template < int m > vfloat32mf2_t ap(aa< c, m, -1 >, vuint8mf2_t); template < class ad, class aq > ak< ad > an(ad d, aq n) { return ap(d, ao(d, n)); } vbool64_t av(vuint32mf2_t, vuint32mf2_t); template < class ad > bool ba(ad, vbool64_t); template < class ad > using bb =3D decltype(al(ad())); template < typename g > using be =3D ac< g, -1 >; struct bf { template < class ad > bool bh(ad, bb< ad > bi) { ae< ad > am; return ba(am, av(an(am, bi), al(am))); } }; int bo; template < class ad, class bl, typename g > void o(ad d, bl bn, g) { bb< ad > bq =3D al(d); for (; bo;) { int br =3D bn.bh(d, bq); if (__builtin_expect(br, 0)) for (;;) ; } } template < class ad, class bl, typename g > void bs(ad d, bl bn, g) { g bu; o(d, bn, bu); } template < class ad, class bl, typename g > void bv(ad d, bl bn, g *, int, g *bt) { bs(d, bn, bt); } float by; int bz; float ca; void b() { be< float > d; bf bn; bv(d, bn, &by, bz, &ca); }=