[llvm-commits] LLVM patch to support ARM fused multiply add/subtract instructions

Ana Pazos apazos at codeaurora.org
Wed Jan 25 15:55:32 PST 2012


Hi Anton,

- I have updated fusedMAC.ll to include Neon fused multiply add/sub test cases. The patch is attached.

- 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

So I think it just relies on -mfpu=neon-vfpv4 to imply Neon2.

Thanks,
Ana.

-----Original Message-----
From: anton at korobeynikov.info [mailto:anton at korobeynikov.info] On Behalf Of Anton Korobeynikov
Sent: Wednesday, January 25, 2012 5:42 AM
To: Ana Pazos
Cc: llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] LLVM patch to support ARM fused multiply add/subtract instructions

Hi Ana,

> In this update:
> - I assumed neon2 does not imply vfpv4, but neon and vfpv4 imply neon2.
> - I kept setting .fpu=neon-vfpv4 code attribute because that is what the
> assembler understands.
Looks ok.

> The additional changes mentioned in the email discussions I think belong to
> a separate patch:
> - Associate VMLA/VMLS with LessPreciseFPMAD flag, and maybe with fast-math
> flag.
They should definitely not be. They are not less precise! They are
"exactly precise" as two separate ops. It's just FMA which has greater
precision than usual thanks to 1 rounding.
And it's FMA which needs to be associated with -ffast-math on VFPv2

> - VFPv3/VFPv4/NEON/NEON2 associations with FeatureFP16/FeatureD16.
Right. But in a separate patch, please.

> - Support to set -mfpu=neon2 in clang. Do you want this??
We should be compatible with gcc in this matter. What does it do?

-- 
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fusedMACtestpatch.diff
Type: application/octet-stream
Size: 3287 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120125/a5b05ae3/attachment.obj>


More information about the llvm-commits mailing list