[llvm-commits] [llvm] r154480 - in /llvm/trunk: lib/Target/ARM/ARM.td lib/Target/ARM/ARMAsmPrinter.cpp lib/Target/ARM/ARMInstrInfo.td lib/Target/ARM/ARMInstrNEON.td lib/Target/ARM/ARMInstrVFP.td lib/Target/ARM/ARMSubtarget.cpp lib/Target/ARM/ARMS

Evan Cheng evan.cheng at apple.com
Wed Apr 11 14:07:13 PDT 2012


On Apr 11, 2012, at 11:13 AM, Ana Pazos <apazos at codeaurora.org> wrote:

> Hi Evan,
> 
> There was a long discussion on this mailing list about Neon2 when I
> submitted the patch. You can find them all by searching the archive. See
> some of the emails attached.

I've looked through these emails. It's basically impossible to have VFPv4 without NEON2, I don't see the need to add NEON2 feature in the ARM target. Did I miss something? I want to avoid the proliferation of feature bits since it's limited to 64 per target.

> 
> Btw, you can add Neon2 support to clang  instead of reusing neon-vfp4 flag
> which the reviewers did not like.

Is anyone going to use this? We don't want to add new options unless there is a demand.

Evan

> 
> Thanks,
> Ana.
> 
> -----Original Message-----
> From: llvm-commits-bounces at cs.uiuc.edu
> [mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Evan Cheng
> Sent: Wednesday, April 11, 2012 10:21 AM
> To: Anton Korobeynikov
> Cc: llvm-commits at cs.uiuc.edu
> Subject: Re: [llvm-commits] [llvm] r154480 - in /llvm/trunk:
> lib/Target/ARM/ARM.td lib/Target/ARM/ARMAsmPrinter.cpp
> lib/Target/ARM/ARMInstrInfo.td lib/Target/ARM/ARMInstrNEON.td
> lib/Target/ARM/ARMInstrVFP.td lib/Target/ARM/ARMSubtarget.cpp
> lib/Target/ARM/ARMS
> 
> 
> On Apr 11, 2012, at 4:40 AM, Anton Korobeynikov wrote:
> 
>> Hello Evan,
>> 
>>> Clean up ARM fused multiply + add/sub support some more: rename some 
>>> isel predicates.
>>> Also remove NEON2 since it's not really useful and it is confusing. 
>>> If NEON + VFP4 implies NEON2 but NEON2 doesn't imply NEON + VFP4, 
>>> what does it really mean?
>> There was the discussion about this in ML, consider checking it.
> 
> I only saw this:
> 
>> Here is an updated patch for the ARM fused multiply add/sub feature 
>> with the relevant suggestions incorporated.
>> 
>> In this update:
>> - I assumed neon2 does not imply vfpv4, but neon and vfpv4 imply neon2.
> 
> 
> Previously hasNEON2 is both a subtarget feature as well as a isel predicate:
> 'return HasNEON2 || (HasNEON && HasVFPv4);'.
> 
> This is wrong because it would break the assembler and disassembler when you
> pass -mattr=+vfp4 (because HasNEON2 would still be false). Furthermore,
> since (HasNEON && HasVFPv4) implies HasNEON2, it means NEON2 is equal or is
> a subset of the features implied by NEON && HasVFPv4. Since currently there
> are no instructions that are predicated on HasVFPv4 should not be available
> for a target with only NEON2, there is really no point in having this
> subtarget feature.
> 
> Also note:
> 
>> - Regarding Neon2 flag, Code Sourcery GCC seems to support only these
> flags:
>> -mfpu=vfpv4 		
>> -mfpu=vfpv4-d16
>> -mfpu=neon-vfpv4
>> -mfpu=vfpv3-d16-fp16
>> -mfpu=vfpv3-fp16
> 
> There isn't a -mfpu=neon2 flag.
> 
> Evan
> 
> 
>> 
>> --
>> With best regards, Anton Korobeynikov
>> Faculty of Mathematics and Mechanics, Saint Petersburg State 
>> University
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> <Mail Attachment.eml><Mail Attachment.eml><Mail Attachment.eml><Mail Attachment.eml><Mail Attachment.eml><Mail Attachment.eml>




More information about the llvm-commits mailing list