https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125245

--- Comment #6 from XChy <xxs_chy at outlook dot com> ---
(In reply to H.J. Lu from comment #5)
> (In reply to XChy from comment #4)
> > It seems that the fix only prevents the reduced case from crashing.
> > 
> > gcc version 17.0.0 20260510 (experimental) (GCC)
> > 
> > This case also crashed GCC at -O3:
> > #include <stdint.h>
> > typedef int16_t v2i16 __attribute__((vector_size(4)));
> > int16_t g5;
> > _Bool g26;
> > void f15(v2i16, int16_t, void *);
> > void f3()
> > {
> >     int16_t v1;
> >     v2i16 vec6;
> > lbl_br7:
> >     vec6[0] = 1;
> >     v1 = vec6[0];
> > lbl_br10:
> >     g5 = vec6[0];
> >     vec6[1] = g5;
> >     if (g26)
> >     {
> >         f15(vec6, 0, 0);
> >         goto lbl_br7;
> >     }
> >     vec6[1] = v1;
> >     g26 = g5 = vec6[1];
> >     vec6[0] = g5;
> >     goto lbl_br10;
> > }
> 
> Please try
> 
> commit ab10e6697f941d4c6a70242dcf1db1db84484113
> Author:     H.J. Lu <[email protected]>
> AuthorDate: Sat May 9 20:58:11 2026 +0800
> Commit:     H.J. Lu <[email protected]>
> CommitDate: Sun May 10 16:54:23 2026 +0800
> 
>     x86_cse: Convert vector load to constant integer load

Thanks. It works now.

Reply via email to