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.

Reply via email to