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

--- Comment #12 from rguenther at suse dot de <rguenther at suse dot de> ---
On Mon, 8 Jul 2019, rsandifo at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91060
> 
> rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>           Component|middle-end                  |target
>            Assignee|rguenth at gcc dot gnu.org         |rsandifo at gcc dot 
> gnu.org
> 
> --- Comment #11 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot 
> gnu.org> ---
> (In reply to rguent...@suse.de from comment #10)
> > On Mon, 8 Jul 2019, clyon at gcc dot gnu.org wrote:
> > 
> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91060
> > > 
> > > --- Comment #8 from Christophe Lyon <clyon at gcc dot gnu.org> ---
> > > (In reply to Richard Biener from comment #5)
> > > > Hmm, using a cross configured as
> > > > 
> > > > trunk/configure --target=armeb-none-linux-gnueabihf --with-cpu=cortex-a9
> > > > --with-fpu=neon-fp16 --enable-languages=c
> > > > 
> > > > and trimming the testcase to the first line I cannot reproduce the 
> > > > reported
> > > > assembly.  I get at -O3
> > > > 
> > > >         .arm
> > > >         .fpu softvfp
> > > 
> > > For some reason, you are not targeting the right FPU, I have:
> > >         .arm
> > >         .fpu neon-fp16
> > 
> > I noticed that - but it doesn't change even when supplying
> >  -mpfu=neon-fp16 -mcpu=cortex-a9
> > 
> > I suppose some configure-time checking disables this feature somehow
> > without notifying me :/  (don't have a armeb assembler installed,
> > trying a pure cc1 cross)
> > 
> > Anyway, I can't reproduce even after spending 1+ hours on this.
> 
> Yeah, I see the same thing building it that way.  I needed to restate
> the abi using -mfloat-abi=hard.

Even when adding -mfloat-abi=hard I see .fpu softvfp ...

> I'm pretty sure it's a target bug though.  If a vector constructor
> has a single nonconstant element, neon_expand_vector_init uses the
> neon_vset_lane* patterns to set that index.  But neon_vset_lane*
> use the architecture lane numbering while neon_expand_vector_init
> uses GCC lane numbering.  Using the vec_set(_internal) patterns
> should fix that.

I'm out of here then ;)

Reply via email to