On Sun, Jun 21, 2026 at 10:37 AM H.J. Lu <[email protected]> wrote:
>
> On Sun, Jun 21, 2026 at 4:14 PM Uros Bizjak <[email protected]> wrote:
> >
> > On Sat, Jun 20, 2026 at 6:04 AM H.J. Lu <[email protected]> wrote:
> > >
> > > Use integer CONST_VECTOR:
> > >
> > > (const_vector:V2SI [
> > >         (const_int 1073741824 [0x40000000]) repeated x2
> > >     ])
> > >
> > > instead of
> > >
> > > (const_vector:V2SF [
> > >         (const_int 1073741824 [0x40000000]) repeated x2
> > >     ])
> > >
> > > to load FP CONST_VECTOR converted from const_int:
> > >
> > > (insn 25 24 27 2 (set (subreg:SI (reg/v:SF 144 [ d ]) 0)
> > >         (const_int 1073741824 [0x40000000])) "x.c":4:18 100 
> > > {*movsi_internal}
> > >      (nil))
> > > ...
> > > (insn 90 88 91 2 (set (reg:V2SF 202 [ _15 ])
> > >         (vec_duplicate:V2SF (reg/v:SF 144 [ d ]))) "x.c":4:5 2137 
> > > {*vec_dupv2sf}
> > >      (expr_list:REG_DEAD (reg/v:SF 144 [ d ])
> > >         (nil)))
> > >
> > > into GPR:
> > >
> > > (insn 90 88 91 2 (set (subreg:DI (reg:V2SF 202 [ _15 ]) 0)
> > >         (const_int 4611686019501129728 [0x4000000040000000]))
> > > "x.c":4:5 99 {*movdi_internal}
> > >      (expr_list:REG_DEAD (reg/v:SF 144 [ d ])
> > >         (nil)))
> > >
> > > gcc/
> > >
> > > PR target/125895
> > > * config/i386/i386-features.cc (pass_x86_cse::x86_cse): Use
> > > integer CONST_VECTOR to load FP CONST_VECTOR converted from
> > > const_int.
> > >
> > > gcc/testsuite/
> > >
> > > PR target/125895
> > > * gcc.target/i386/pr125895.c: New test.

LGTM.

Thanks,
Uros.

> > >
> > > --
> > > H.J.
> >
> > + gcc_assert (load->size <= UNITS_PER_WORD);
> > + machine_mode imode = GET_MODE_INNER (mode);
> > + switch (imode)
> > +  {
> > +  case BFmode:
> > +  case HFmode:
> > +    imode = HImode;
> > +    break;
> > +
> > +  case SFmode:
> > +    imode = SImode;
> > +    break;
> > +
> > +  case DFmode:
> > +    imode = DImode;
> > +    break;
> > +
> > +  default:
> > +    gcc_unreachable ();
> > +  }
> >
> > int_mode_for_mode ?
> >
> > Uros.
>
> Done.  Here is the v2 patch.
>
> Thanks.
>
> --
> H.J.

Reply via email to