diff options
author | David Goodwin <david_goodwin@apple.com> | 2009-08-04 17:53:06 +0000 |
---|---|---|
committer | David Goodwin <david_goodwin@apple.com> | 2009-08-04 17:53:06 +0000 |
commit | dd19ce43bb9742c41d90123b2ae0fc5661d6e27e (patch) | |
tree | eca061ad8695529066fa894eb0b7cc417bbf253b /lib/Target/ARM/ARMInstrFormats.td | |
parent | ef40462d848f4e97bdca104da3ab4cfbd656dfed (diff) | |
download | external_llvm-dd19ce43bb9742c41d90123b2ae0fc5661d6e27e.zip external_llvm-dd19ce43bb9742c41d90123b2ae0fc5661d6e27e.tar.gz external_llvm-dd19ce43bb9742c41d90123b2ae0fc5661d6e27e.tar.bz2 |
Initial support for single-precision FP using NEON. Added "neonfp" attribute to enable. Added patterns for some binary FP operations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78081 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMInstrFormats.td')
-rw-r--r-- | lib/Target/ARM/ARMInstrFormats.td | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMInstrFormats.td b/lib/Target/ARM/ARMInstrFormats.td index fe32c5f..de2bb78 100644 --- a/lib/Target/ARM/ARMInstrFormats.td +++ b/lib/Target/ARM/ARMInstrFormats.td @@ -1080,6 +1080,14 @@ class ASbI<bits<8> opcod, dag oops, dag iops, string opc, let Inst{11-8} = 0b1010; } +// Single precision, binary if no NEON +// Same as ASbI except not available if NEON is enabled +class ASbIn<bits<8> opcod, dag oops, dag iops, string opc, + string asm, list<dag> pattern> + : ASbI<opcod, oops, iops, opc, asm, pattern> { + list<Predicate> Predicates = [HasVFP2,DontUseNEONForFP]; +} + // VFP conversion instructions class AVConv1I<bits<8> opcod1, bits<4> opcod2, bits<4> opcod3, dag oops, dag iops, string opc, string asm, list<dag> pattern> @@ -1220,3 +1228,9 @@ class NVSetLane<bits<8> opcod1, bits<4> opcod2, bits<2> opcod3, class NVDup<bits<8> opcod1, bits<4> opcod2, bits<2> opcod3, dag oops, dag iops, string opc, string asm, list<dag> pattern> : NVLaneOp<opcod1, opcod2, opcod3, oops, iops, NEONDupFrm, opc, asm, pattern>; + +// NEONFPPat - Same as Pat<>, but requires that the compiler be using NEON +// for single-precision FP. +class NEONFPPat<dag pattern, dag result> : Pat<pattern, result> { + list<Predicate> Predicates = [HasNEON,UseNEONForFP]; +} |