From 7ca32658bbaafd0a20e28cc1294c0ae6178cc265 Mon Sep 17 00:00:00 2001
From: Iain Sandoe <iain@sandoe.co.uk>
Date: Sun, 12 Aug 2018 14:44:41 +0100
Subject: [PATCH] [llvm,Arm] Add instruction alias for vmov R, R[l].

The documentation for vmov says that the 32 in 'vmov.32' is optional and may b ommitted.
This adds an instruction alias for the case.  No test changes.
---
 llvm/lib/Target/ARM/ARMInstrNEON.td | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/llvm/lib/Target/ARM/ARMInstrNEON.td b/llvm/lib/Target/ARM/ARMInstrNEON.td
index 4525eec8da0..6cda00b65de 100644
--- a/llvm/lib/Target/ARM/ARMInstrNEON.td
+++ b/llvm/lib/Target/ARM/ARMInstrNEON.td
@@ -6115,6 +6115,10 @@ def VGETLNi32 : NVGetLane<{1,1,1,0,0,0,?,1}, 0b1011, 0b00,
                 Requires<[HasVFP2, HasFastVGETLNi32]> {
   let Inst{21} = lane{0};
 }
+
+def: NEONInstAlias<"vmov${p} $R, $V, $lane",
+                   (VGETLNi32 GPR:$R, DPR:$V, VectorIndex32:$lane, pred:$p)>;
+
 // def VGETLNf32: see FMRDH and FMRDL in ARMInstrVFP.td
 def : Pat<(NEONvgetlanes (v16i8 QPR:$src), imm:$lane),
           (VGETLNs8 (v8i8 (EXTRACT_SUBREG QPR:$src,
