aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMInstrVFP.td
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2011-12-08 22:51:25 +0000
committerJim Grosbach <grosbach@apple.com>2011-12-08 22:51:25 +0000
commit976c0da213bb9a4f07d4ca2a82765b5e590be05d (patch)
treec8b1103e5d84037f10e4fe61baff5542a3dac5bc /lib/Target/ARM/ARMInstrVFP.td
parenta81ac8f2b5d4f61f7bc353f95cc1d0a05266f51c (diff)
downloadexternal_llvm-976c0da213bb9a4f07d4ca2a82765b5e590be05d.zip
external_llvm-976c0da213bb9a4f07d4ca2a82765b5e590be05d.tar.gz
external_llvm-976c0da213bb9a4f07d4ca2a82765b5e590be05d.tar.bz2
ARM convenience aliases for VSQRT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146201 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMInstrVFP.td')
-rw-r--r--lib/Target/ARM/ARMInstrVFP.td6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMInstrVFP.td b/lib/Target/ARM/ARMInstrVFP.td
index 7ab2b88..828b9a2 100644
--- a/lib/Target/ARM/ARMInstrVFP.td
+++ b/lib/Target/ARM/ARMInstrVFP.td
@@ -1168,9 +1168,15 @@ def : MnemonicAlias<"flds", "vldr">;
def : MnemonicAlias<"fldd", "vldr">;
def : MnemonicAlias<"fmrs", "vmov">;
def : MnemonicAlias<"fmsr", "vmov">;
+def : MnemonicAlias<"fsqrts", "vsqrt">;
+def : MnemonicAlias<"fsqrtd", "vsqrt">;
def : VFP2InstAlias<"fmstat${p}", (FMSTAT pred:$p)>;
+// No need for the size suffix on VSQRT. It's implied by the register classes.
+def : VFP2InstAlias<"vsqrt${p} $Sd, $Sm", (VSQRTS SPR:$Sd, SPR:$Sm, pred:$p)>;
+def : VFP2InstAlias<"vsqrt${p} $Dd, $Dm", (VSQRTD DPR:$Dd, DPR:$Dm, pred:$p)>;
+
// VLDR/VSTR accept an optional type suffix.
def : VFP2InstAlias<"vldr${p}.32 $Sd, $addr",
(VLDRS SPR:$Sd, addrmode5:$addr, pred:$p)>;