https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123117
Xi Ruoyao <xry111 at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|LoongArch: wrong code at |[16 Regression] LoongArch:
|-O1/O2/O3 |wrong code at -O1/O2/O3
Known to work| |15.2.0
Last reconfirmed| |2025-12-15
Known to fail| |16.0
Component|target |tree-optimization
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #6 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
--- a-t.c.217t.dce7 2025-12-15 11:59:15.516876500 +0800
+++ a-t.c.218t.forwprop4 2025-12-15 11:59:15.517102332 +0800
@@ -1,27 +1,27 @@
;; Function main (main, funcdef_no=526, decl_uid=6335, cgraph_uid=527,
symbol_order=526) (executed once)
int main ()
{
vector(2) long int _1;
long int _3;
vector(4) int _6;
unsigned int _8;
long int _9;
unsigned int _10;
long int _11;
<bb 2> [local count: 1073741824]:
_6 = __builtin_lsx_vadd_w ({ -1639459886, 0, 0, 0 }, { 0, 0, 0, 0 });
_8 = BIT_FIELD_REF <_6, 32, 0>;
_9 = (long int) _8;
_10 = BIT_FIELD_REF <_6, 32, 32>;
_11 = (long int) _10;
- _1 = {_9, _11};
+ _1 = [vec_unpack_lo_expr] _6;
_3 = BIT_FIELD_REF <_1, 64, 0>;
printf ("0x%016lx\n", _3);
return 0;
}
This looks wrong.