]> granicus.if.org Git - llvm/commitdiff
[ARM] Make coprocessor number restrictions consistent.
authorSimon Tatham <simon.tatham@arm.com>
Thu, 27 Jun 2019 12:40:55 +0000 (12:40 +0000)
committerSimon Tatham <simon.tatham@arm.com>
Thu, 27 Jun 2019 12:40:55 +0000 (12:40 +0000)
Different versions of the Arm architecture disallow the use of generic
coprocessor instructions like MCR and CDP on different sets of
coprocessors. This commit centralises the check of the coprocessor
number so that it's consistent between assembly and disassembly, and
also updates it for the new restrictions in Arm v8.1-M.

New tests added that check all the coprocessor numbers; old tests
updated, where they used a number that's now become illegal in the
context in question.

Reviewers: DavidSpickett, ostannard

Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63863

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364532 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMBaseInstrInfo.h
lib/Target/ARM/AsmParser/ARMAsmParser.cpp
lib/Target/ARM/Disassembler/ARMDisassembler.cpp
test/MC/ARM/coprocessors.s [new file with mode: 0644]
test/MC/ARM/diagnostics.s
test/MC/ARM/thumb2-diagnostics.s
test/MC/ARM/v8_IT_manual.s
test/MC/Disassembler/ARM/coprocessors-arm.txt [new file with mode: 0644]
test/MC/Disassembler/ARM/coprocessors-thumb.txt [new file with mode: 0644]

index 465d13803fddb2b63a9dcd2284619f0f19163d57..c28983fcc15c9d6b0a789a474168595b67388dd0 100644 (file)
@@ -524,6 +524,28 @@ static inline bool isPushOpcode(int Opc) {
          Opc == ARM::STMDB_UPD || Opc == ARM::VSTMDDB_UPD;
 }
 
+/// isValidCoprocessorNumber - decide whether an explicit coprocessor
+/// number is legal in generic instructions like CDP. The answer can
+/// vary with the subtarget.
+static inline bool isValidCoprocessorNumber(unsigned Num,
+                                            const FeatureBitset& featureBits) {
+  // Armv8-A disallows everything *other* than 111x (CP14 and CP15).
+  if (featureBits[ARM::HasV8Ops] && (Num & 0xE) != 0xE)
+    return false;
+
+  // Armv7 disallows 101x (CP10 and CP11), which clash with VFP/NEON.
+  if (featureBits[ARM::HasV7Ops] && (Num & 0xE) == 0xA)
+    return false;
+
+  // Armv8.1-M also disallows 100x (CP8,CP9) and 111x (CP14,CP15)
+  // which clash with MVE.
+  if (featureBits[ARM::HasV8_1MMainlineOps] &&
+      ((Num & 0xE) == 0x8 || (Num & 0xE) == 0xE))
+    return false;
+
+  return true;
+}
+
 /// getInstrPredicate - If instruction is predicated, returns its predicate
 /// condition, otherwise returns AL. It also returns the condition code
 /// register by reference.
index 76734a6b13e91c5b0a8830971cd95f9102911552..3ff3af9dd58a56163b1fd0806973403e7b918a78 100644 (file)
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "ARMFeatures.h"
+#include "ARMBaseInstrInfo.h"
 #include "Utils/ARMBaseInfo.h"
 #include "MCTargetDesc/ARMAddressingModes.h"
 #include "MCTargetDesc/ARMBaseInfo.h"
@@ -4167,8 +4168,7 @@ ARMAsmParser::parseCoprocNumOperand(OperandVector &Operands) {
   int Num = MatchCoprocessorOperandName(Tok.getString().lower(), 'p');
   if (Num == -1)
     return MatchOperand_NoMatch;
-  // ARMv7 and v8 don't allow cp10/cp11 due to VFP/NEON specific instructions
-  if ((hasV7Ops() || hasV8Ops()) && (Num == 10 || Num == 11))
+  if (!isValidCoprocessorNumber(Num, getSTI().getFeatureBits()))
     return MatchOperand_NoMatch;
 
   Parser.Lex(); // Eat identifier token.
index c6ae7d26bf91e07f93563da837498cb6c24e40e2..548fb10fb3fca8af2874efd1c1a5153e19eafed8 100644 (file)
@@ -4486,14 +4486,7 @@ static DecodeStatus DecodeCoprocessor(MCInst &Inst, unsigned Val,
   const FeatureBitset &featureBits =
     ((const MCDisassembler*)Decoder)->getSubtargetInfo().getFeatureBits();
 
-  if (featureBits[ARM::HasV8Ops] && !(Val == 14 || Val == 15))
-    return MCDisassembler::Fail;
-
-  // For Armv8.1-M Mainline coprocessors matching 100x,101x or 111x should
-  // decode as VFP/MVE instructions.
-  if (featureBits[ARM::HasV8_1MMainlineOps] &&
-      ((Val & 0xE) == 0x8 || (Val & 0xE) == 0xA ||
-       (Val & 0xE) == 0xE))
+  if (!isValidCoprocessorNumber(Val, featureBits))
     return MCDisassembler::Fail;
 
   Inst.addOperand(MCOperand::createImm(Val));
diff --git a/test/MC/ARM/coprocessors.s b/test/MC/ARM/coprocessors.s
new file mode 100644 (file)
index 0000000..d2ef581
--- /dev/null
@@ -0,0 +1,74 @@
+@ RUN: not llvm-mc -triple=armv7 < %s 2> %t | FileCheck --check-prefix=ACCEPT-01234567CD --check-prefix=ACCEPT-89 --check-prefix=ACCEPT-EF %s
+@ RUN: FileCheck --check-prefix=REJECT-AB < %t %s
+@ RUN: not llvm-mc -triple=thumbv7 < %s 2> %t | FileCheck --check-prefix=ACCEPT-01234567CD --check-prefix=ACCEPT-89 --check-prefix=ACCEPT-EF %s
+@ RUN: FileCheck --check-prefix=REJECT-AB < %t %s
+@ RUN: not llvm-mc -triple=armv8 < %s 2> %t | FileCheck --check-prefix=ACCEPT-EF %s
+@ RUN: FileCheck --check-prefix=REJECT-01234567CD --check-prefix=REJECT-89 --check-prefix=REJECT-AB < %t %s
+@ RUN: not llvm-mc -triple=thumbv8 < %s 2> %t | FileCheck --check-prefix=ACCEPT-EF %s
+@ RUN: FileCheck --check-prefix=REJECT-01234567CD --check-prefix=REJECT-89 --check-prefix=REJECT-AB < %t %s
+@ RUN: not llvm-mc -triple=thumbv8.1m.main < %s 2> %t | FileCheck --check-prefix=ACCEPT-01234567CD %s
+@ RUN: FileCheck --check-prefix=REJECT-89 --check-prefix=REJECT-AB --check-prefix=REJECT-EF < %t %s
+
+mrc   p0, #1, r2, c3, c4, #5
+@ ACCEPT-01234567CD: mrc   p0, #1, r2, c3, c4, #5
+@ REJECT-01234567CD: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p1, #1, r2, c3, c4, #5
+@ ACCEPT-01234567CD: mrc   p1, #1, r2, c3, c4, #5
+@ REJECT-01234567CD: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p2, #1, r2, c3, c4, #5
+@ ACCEPT-01234567CD: mrc   p2, #1, r2, c3, c4, #5
+@ REJECT-01234567CD: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p3, #1, r2, c3, c4, #5
+@ ACCEPT-01234567CD: mrc   p3, #1, r2, c3, c4, #5
+@ REJECT-01234567CD: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p4, #1, r2, c3, c4, #5
+@ ACCEPT-01234567CD: mrc   p4, #1, r2, c3, c4, #5
+@ REJECT-01234567CD: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p5, #1, r2, c3, c4, #5
+@ ACCEPT-01234567CD: mrc   p5, #1, r2, c3, c4, #5
+@ REJECT-01234567CD: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p6, #1, r2, c3, c4, #5
+@ ACCEPT-01234567CD: mrc   p6, #1, r2, c3, c4, #5
+@ REJECT-01234567CD: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p7, #1, r2, c3, c4, #5
+@ ACCEPT-01234567CD: mrc   p7, #1, r2, c3, c4, #5
+@ REJECT-01234567CD: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p8, #1, r2, c3, c4, #5
+@ ACCEPT-89: mrc   p8, #1, r2, c3, c4, #5
+@ REJECT-89: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p9, #1, r2, c3, c4, #5
+@ ACCEPT-89: mrc   p9, #1, r2, c3, c4, #5
+@ REJECT-89: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p10, #1, r2, c3, c4, #5
+@ ACCEPT-AB: mrc   p10, #1, r2, c3, c4, #5
+@ REJECT-AB: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p11, #1, r2, c3, c4, #5
+@ ACCEPT-AB: mrc   p11, #1, r2, c3, c4, #5
+@ REJECT-AB: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p12, #1, r2, c3, c4, #5
+@ ACCEPT-01234567CD: mrc   p12, #1, r2, c3, c4, #5
+@ REJECT-01234567CD: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p13, #1, r2, c3, c4, #5
+@ ACCEPT-01234567CD: mrc   p13, #1, r2, c3, c4, #5
+@ REJECT-01234567CD: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p14, #1, r2, c3, c4, #5
+@ ACCEPT-EF: mrc   p14, #1, r2, c3, c4, #5
+@ REJECT-EF: [[@LINE-2]]:7: error: invalid operand for instruction
+
+mrc   p15, #1, r2, c3, c4, #5
+@ ACCEPT-EF: mrc   p15, #1, r2, c3, c4, #5
+@ REJECT-EF: [[@LINE-2]]:7: error: invalid operand for instruction
index d9ca8a53a0cf16798e73e804becf0d47b00b7d64..1e84a802f29d60b3e014031512e370edc0ebbd42 100644 (file)
         @ Out of range 4 and 3 bit immediates on CDP[2]
 
         @ Out of range immediates for CDP/CDP2
-        cdp  p7, #2, c1, c1, c1, #8
-        cdp  p7, #1, c1, c1, c1, #8
-        cdp2  p7, #2, c1, c1, c1, #8
-        cdp2  p7, #1, c1, c1, c1, #8
+        cdp  p14, #2, c1, c1, c1, #8
+        cdp  p14, #1, c1, c1, c1, #8
+        cdp2  p14, #2, c1, c1, c1, #8
+        cdp2  p14, #1, c1, c1, c1, #8
 
 @ CHECK-ERRORS-V7: error: operand must be an immediate in the range [0,7]
 @ CHECK-ERRORS-V7: error: operand must be an immediate in the range [0,7]
 @ CHECK-ERRORS:     ^
 
         @ Out of range immediate for MCR/MCR2/MCRR/MCRR2
-        mcr  p7, #8, r5, c1, c1, #4
-        mcr  p7, #2, r5, c1, c1, #8
-        mcr2  p7, #8, r5, c1, c1, #4
-        mcr2  p7, #1, r5, c1, c1, #8
-        mcrr  p7, #16, r5, r4, c1
-        mcrr2  p7, #16, r5, r4, c1
+        mcr  p14, #8, r5, c1, c1, #4
+        mcr  p14, #2, r5, c1, c1, #8
+        mcr2  p14, #8, r5, c1, c1, #4
+        mcr2  p14, #1, r5, c1, c1, #8
+        mcrr  p14, #16, r5, r4, c1
+        mcrr2  p14, #16, r5, r4, c1
 @ CHECK-ERRORS: operand must be an immediate in the range [0,7]
 @ CHECK-ERRORS: operand must be an immediate in the range [0,7]
 @ CHECK-ERRORS-V7: operand must be an immediate in the range [0,7]
         mrc  p14, #1, r1, c1, c2, #8
         mrc2  p14, #8, r1, c1, c2, #4
         mrc2  p14, #0, r1, c1, c2, #9
-        mrrc  p7, #16, r5, r4, c1
-        mrrc2  p7, #17, r5, r4, c1
+        mrrc  p14, #16, r5, r4, c1
+        mrrc2  p14, #17, r5, r4, c1
 @ CHECK-ERRORS: operand must be an immediate in the range [0,7]
 @ CHECK-ERRORS: operand must be an immediate in the range [0,7]
 @ CHECK-ERRORS-V7: operand must be an immediate in the range [0,7]
index fdbcd11b4818542282c8de260c83890a620de83a..ccc9d7b9df6ac800e2da5d3e2ebba360aa43abfa 100644 (file)
@@ -37,8 +37,8 @@
         mrc  p14, #1, r1, c1, c2, #8
         mrc2  p14, #8, r1, c1, c2, #4
         mrc2  p14, #0, r1, c1, c2, #9
-        mrrc  p7, #16, r5, r4, c1
-        mrrc2  p7, #17, r5, r4, c1
+        mrrc  p14, #16, r5, r4, c1
+        mrrc2  p14, #17, r5, r4, c1
 @ CHECK-ERRORS: operand must be an immediate in the range [0,7]
 @ CHECK-ERRORS: operand must be an immediate in the range [0,7]
 @ CHECK-ERRORS-V7: operand must be an immediate in the range [0,7]
index f4c5bcbe0644cd76959a9dbe9dafaa8ef29c5a58..b082002f4ffa1253f7d645be8f82a1977c548cba 100644 (file)
@@ -1832,148 +1832,148 @@ it ge
 rsbge r0, lr, r0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r0], #-0
+stcge p14, c0, [r0], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r1], #-0
+stcge p14, c0, [r1], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r2], #-0
+stcge p14, c0, [r2], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r3], #-0
+stcge p14, c0, [r3], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r4], #-0
+stcge p14, c0, [r4], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r5], #-0
+stcge p14, c0, [r5], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r6], #-0
+stcge p14, c0, [r6], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r7], #-0
+stcge p14, c0, [r7], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r8], #-0
+stcge p14, c0, [r8], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r9], #-0
+stcge p14, c0, [r9], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r10], #-0
+stcge p14, c0, [r10], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r11], #-0
+stcge p14, c0, [r11], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r12], #-0
+stcge p14, c0, [r12], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [sp], #-0
+stcge p14, c0, [sp], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [lr], #-0
+stcge p14, c0, [lr], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [pc], #-0
+stcge p14, c0, [pc], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r0], #-0
+ldcge p14, c0, [r0], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r1], #-0
+ldcge p14, c0, [r1], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r2], #-0
+ldcge p14, c0, [r2], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r3], #-0
+ldcge p14, c0, [r3], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r4], #-0
+ldcge p14, c0, [r4], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r5], #-0
+ldcge p14, c0, [r5], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r6], #-0
+ldcge p14, c0, [r6], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r7], #-0
+ldcge p14, c0, [r7], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r8], #-0
+ldcge p14, c0, [r8], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r9], #-0
+ldcge p14, c0, [r9], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r10], #-0
+ldcge p14, c0, [r10], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r11], #-0
+ldcge p14, c0, [r11], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r12], #-0
+ldcge p14, c0, [r12], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [sp], #-0
+ldcge p14, c0, [sp], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [lr], #-0
+ldcge p14, c0, [lr], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [pc], #-0
+ldcge p14, c0, [pc], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r0, c0
+mcrrge p14, #0, r0, r0, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r1, c0
+mcrrge p14, #0, r0, r1, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r2, c0
+mcrrge p14, #0, r0, r2, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r3, c0
+mcrrge p14, #0, r0, r3, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r4, c0
+mcrrge p14, #0, r0, r4, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r5, c0
+mcrrge p14, #0, r0, r5, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r6, c0
+mcrrge p14, #0, r0, r6, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r7, c0
+mcrrge p14, #0, r0, r7, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r8, c0
+mcrrge p14, #0, r0, r8, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r9, c0
+mcrrge p14, #0, r0, r9, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r10, c0
+mcrrge p14, #0, r0, r10, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r11, c0
+mcrrge p14, #0, r0, r11, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, r12, c0
+mcrrge p14, #0, r0, r12, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, sp, c0
+mcrrge p14, #0, r0, sp, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, lr, c0
+mcrrge p14, #0, r0, lr, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-mcrrge p0, #0, r0, pc, c0
+mcrrge p14, #0, r0, pc, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
 mrrcge p14, #0, r0, r0, c0
@@ -2024,1252 +2024,1252 @@ it ge
 mrrcge p14, #0, r0, pc, c0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r0], #-0
+stclge p14, c0, [r0], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r1], #-0
+stclge p14, c0, [r1], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r2], #-0
+stclge p14, c0, [r2], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r3], #-0
+stclge p14, c0, [r3], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r4], #-0
+stclge p14, c0, [r4], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r5], #-0
+stclge p14, c0, [r5], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r6], #-0
+stclge p14, c0, [r6], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r7], #-0
+stclge p14, c0, [r7], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r8], #-0
+stclge p14, c0, [r8], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r9], #-0
+stclge p14, c0, [r9], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r10], #-0
+stclge p14, c0, [r10], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r11], #-0
+stclge p14, c0, [r11], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r12], #-0
+stclge p14, c0, [r12], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [sp], #-0
+stclge p14, c0, [sp], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [lr], #-0
+stclge p14, c0, [lr], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [pc], #-0
+stclge p14, c0, [pc], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r0], #-0
+ldclge p14, c0, [r0], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r1], #-0
+ldclge p14, c0, [r1], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r2], #-0
+ldclge p14, c0, [r2], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r3], #-0
+ldclge p14, c0, [r3], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r4], #-0
+ldclge p14, c0, [r4], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r5], #-0
+ldclge p14, c0, [r5], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r6], #-0
+ldclge p14, c0, [r6], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r7], #-0
+ldclge p14, c0, [r7], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r8], #-0
+ldclge p14, c0, [r8], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r9], #-0
+ldclge p14, c0, [r9], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r10], #-0
+ldclge p14, c0, [r10], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r11], #-0
+ldclge p14, c0, [r11], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r12], #-0
+ldclge p14, c0, [r12], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [sp], #-0
+ldclge p14, c0, [sp], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [lr], #-0
+ldclge p14, c0, [lr], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [pc], #-0
+ldclge p14, c0, [pc], #-0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r0], {0}
+stcge p14, c0, [r0], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r1], {0}
+stcge p14, c0, [r1], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r2], {0}
+stcge p14, c0, [r2], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r3], {0}
+stcge p14, c0, [r3], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r4], {0}
+stcge p14, c0, [r4], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r5], {0}
+stcge p14, c0, [r5], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r6], {0}
+stcge p14, c0, [r6], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r7], {0}
+stcge p14, c0, [r7], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r8], {0}
+stcge p14, c0, [r8], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r9], {0}
+stcge p14, c0, [r9], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r10], {0}
+stcge p14, c0, [r10], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r11], {0}
+stcge p14, c0, [r11], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r12], {0}
+stcge p14, c0, [r12], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [sp], {0}
+stcge p14, c0, [sp], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [lr], {0}
+stcge p14, c0, [lr], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [pc], {0}
+stcge p14, c0, [pc], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r0], {0}
+ldcge p14, c0, [r0], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r1], {0}
+ldcge p14, c0, [r1], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r2], {0}
+ldcge p14, c0, [r2], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r3], {0}
+ldcge p14, c0, [r3], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r4], {0}
+ldcge p14, c0, [r4], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r5], {0}
+ldcge p14, c0, [r5], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r6], {0}
+ldcge p14, c0, [r6], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r7], {0}
+ldcge p14, c0, [r7], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r8], {0}
+ldcge p14, c0, [r8], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r9], {0}
+ldcge p14, c0, [r9], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r10], {0}
+ldcge p14, c0, [r10], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r11], {0}
+ldcge p14, c0, [r11], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r12], {0}
+ldcge p14, c0, [r12], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [sp], {0}
+ldcge p14, c0, [sp], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [lr], {0}
+ldcge p14, c0, [lr], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [pc], {0}
+ldcge p14, c0, [pc], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r0], #0
+stcge p14, c0, [r0], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r1], #0
+stcge p14, c0, [r1], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r2], #0
+stcge p14, c0, [r2], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r3], #0
+stcge p14, c0, [r3], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r4], #0
+stcge p14, c0, [r4], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r5], #0
+stcge p14, c0, [r5], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r6], #0
+stcge p14, c0, [r6], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r7], #0
+stcge p14, c0, [r7], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r8], #0
+stcge p14, c0, [r8], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r9], #0
+stcge p14, c0, [r9], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r10], #0
+stcge p14, c0, [r10], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r11], #0
+stcge p14, c0, [r11], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r12], #0
+stcge p14, c0, [r12], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [sp], #0
+stcge p14, c0, [sp], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [lr], #0
+stcge p14, c0, [lr], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [pc], #0
+stcge p14, c0, [pc], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r0], #0
+ldcge p14, c0, [r0], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r1], #0
+ldcge p14, c0, [r1], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r2], #0
+ldcge p14, c0, [r2], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r3], #0
+ldcge p14, c0, [r3], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r4], #0
+ldcge p14, c0, [r4], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r5], #0
+ldcge p14, c0, [r5], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r6], #0
+ldcge p14, c0, [r6], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r7], #0
+ldcge p14, c0, [r7], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r8], #0
+ldcge p14, c0, [r8], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r9], #0
+ldcge p14, c0, [r9], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r10], #0
+ldcge p14, c0, [r10], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r11], #0
+ldcge p14, c0, [r11], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r12], #0
+ldcge p14, c0, [r12], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [sp], #0
+ldcge p14, c0, [sp], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [lr], #0
+ldcge p14, c0, [lr], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [pc], #0
+ldcge p14, c0, [pc], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r0], {0}
+stclge p14, c0, [r0], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r1], {0}
+stclge p14, c0, [r1], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r2], {0}
+stclge p14, c0, [r2], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r3], {0}
+stclge p14, c0, [r3], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r4], {0}
+stclge p14, c0, [r4], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r5], {0}
+stclge p14, c0, [r5], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r6], {0}
+stclge p14, c0, [r6], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r7], {0}
+stclge p14, c0, [r7], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r8], {0}
+stclge p14, c0, [r8], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r9], {0}
+stclge p14, c0, [r9], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r10], {0}
+stclge p14, c0, [r10], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r11], {0}
+stclge p14, c0, [r11], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r12], {0}
+stclge p14, c0, [r12], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [sp], {0}
+stclge p14, c0, [sp], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [lr], {0}
+stclge p14, c0, [lr], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [pc], {0}
+stclge p14, c0, [pc], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r0], {0}
+ldclge p14, c0, [r0], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r1], {0}
+ldclge p14, c0, [r1], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r2], {0}
+ldclge p14, c0, [r2], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r3], {0}
+ldclge p14, c0, [r3], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r4], {0}
+ldclge p14, c0, [r4], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r5], {0}
+ldclge p14, c0, [r5], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r6], {0}
+ldclge p14, c0, [r6], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r7], {0}
+ldclge p14, c0, [r7], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r8], {0}
+ldclge p14, c0, [r8], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r9], {0}
+ldclge p14, c0, [r9], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r10], {0}
+ldclge p14, c0, [r10], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r11], {0}
+ldclge p14, c0, [r11], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r12], {0}
+ldclge p14, c0, [r12], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [sp], {0}
+ldclge p14, c0, [sp], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [lr], {0}
+ldclge p14, c0, [lr], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [pc], {0}
+ldclge p14, c0, [pc], {0}
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r0], #0
+stclge p14, c0, [r0], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r1], #0
+stclge p14, c0, [r1], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r2], #0
+stclge p14, c0, [r2], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r3], #0
+stclge p14, c0, [r3], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r4], #0
+stclge p14, c0, [r4], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r5], #0
+stclge p14, c0, [r5], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r6], #0
+stclge p14, c0, [r6], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r7], #0
+stclge p14, c0, [r7], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r8], #0
+stclge p14, c0, [r8], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r9], #0
+stclge p14, c0, [r9], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r10], #0
+stclge p14, c0, [r10], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r11], #0
+stclge p14, c0, [r11], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r12], #0
+stclge p14, c0, [r12], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [sp], #0
+stclge p14, c0, [sp], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [lr], #0
+stclge p14, c0, [lr], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [pc], #0
+stclge p14, c0, [pc], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r0], #0
+ldclge p14, c0, [r0], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r1], #0
+ldclge p14, c0, [r1], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r2], #0
+ldclge p14, c0, [r2], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r3], #0
+ldclge p14, c0, [r3], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r4], #0
+ldclge p14, c0, [r4], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r5], #0
+ldclge p14, c0, [r5], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r6], #0
+ldclge p14, c0, [r6], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r7], #0
+ldclge p14, c0, [r7], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r8], #0
+ldclge p14, c0, [r8], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r9], #0
+ldclge p14, c0, [r9], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r10], #0
+ldclge p14, c0, [r10], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r11], #0
+ldclge p14, c0, [r11], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r12], #0
+ldclge p14, c0, [r12], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [sp], #0
+ldclge p14, c0, [sp], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [lr], #0
+ldclge p14, c0, [lr], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [pc], #0
+ldclge p14, c0, [pc], #0
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r0, #-0]
+stcge p14, c0, [r0, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r1, #-0]
+stcge p14, c0, [r1, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r2, #-0]
+stcge p14, c0, [r2, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r3, #-0]
+stcge p14, c0, [r3, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r4, #-0]
+stcge p14, c0, [r4, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r5, #-0]
+stcge p14, c0, [r5, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r6, #-0]
+stcge p14, c0, [r6, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r7, #-0]
+stcge p14, c0, [r7, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r8, #-0]
+stcge p14, c0, [r8, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r9, #-0]
+stcge p14, c0, [r9, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r10, #-0]
+stcge p14, c0, [r10, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r11, #-0]
+stcge p14, c0, [r11, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r12, #-0]
+stcge p14, c0, [r12, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [sp, #-0]
+stcge p14, c0, [sp, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [lr, #-0]
+stcge p14, c0, [lr, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [pc, #-0]
+stcge p14, c0, [pc, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r0, #-0]
+ldcge p14, c0, [r0, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r1, #-0]
+ldcge p14, c0, [r1, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r2, #-0]
+ldcge p14, c0, [r2, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r3, #-0]
+ldcge p14, c0, [r3, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r4, #-0]
+ldcge p14, c0, [r4, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r5, #-0]
+ldcge p14, c0, [r5, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r6, #-0]
+ldcge p14, c0, [r6, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r7, #-0]
+ldcge p14, c0, [r7, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r8, #-0]
+ldcge p14, c0, [r8, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r9, #-0]
+ldcge p14, c0, [r9, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r10, #-0]
+ldcge p14, c0, [r10, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r11, #-0]
+ldcge p14, c0, [r11, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r12, #-0]
+ldcge p14, c0, [r12, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [sp, #-0]
+ldcge p14, c0, [sp, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [lr, #-0]
+ldcge p14, c0, [lr, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [pc, #-0]
+ldcge p14, c0, [pc, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r0, #-0]!
+stcge p14, c0, [r0, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r1, #-0]!
+stcge p14, c0, [r1, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r2, #-0]!
+stcge p14, c0, [r2, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r3, #-0]!
+stcge p14, c0, [r3, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r4, #-0]!
+stcge p14, c0, [r4, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r5, #-0]!
+stcge p14, c0, [r5, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r6, #-0]!
+stcge p14, c0, [r6, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r7, #-0]!
+stcge p14, c0, [r7, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r8, #-0]!
+stcge p14, c0, [r8, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r9, #-0]!
+stcge p14, c0, [r9, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r10, #-0]!
+stcge p14, c0, [r10, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r11, #-0]!
+stcge p14, c0, [r11, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r12, #-0]!
+stcge p14, c0, [r12, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [sp, #-0]!
+stcge p14, c0, [sp, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [lr, #-0]!
+stcge p14, c0, [lr, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [pc, #-0]!
+stcge p14, c0, [pc, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r0, #-0]!
+ldcge p14, c0, [r0, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r1, #-0]!
+ldcge p14, c0, [r1, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r2, #-0]!
+ldcge p14, c0, [r2, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r3, #-0]!
+ldcge p14, c0, [r3, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r4, #-0]!
+ldcge p14, c0, [r4, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r5, #-0]!
+ldcge p14, c0, [r5, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r6, #-0]!
+ldcge p14, c0, [r6, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r7, #-0]!
+ldcge p14, c0, [r7, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r8, #-0]!
+ldcge p14, c0, [r8, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r9, #-0]!
+ldcge p14, c0, [r9, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r10, #-0]!
+ldcge p14, c0, [r10, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r11, #-0]!
+ldcge p14, c0, [r11, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r12, #-0]!
+ldcge p14, c0, [r12, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [sp, #-0]!
+ldcge p14, c0, [sp, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [lr, #-0]!
+ldcge p14, c0, [lr, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [pc, #-0]!
+ldcge p14, c0, [pc, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r0, #-0]
+stclge p14, c0, [r0, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r1, #-0]
+stclge p14, c0, [r1, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r2, #-0]
+stclge p14, c0, [r2, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r3, #-0]
+stclge p14, c0, [r3, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r4, #-0]
+stclge p14, c0, [r4, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r5, #-0]
+stclge p14, c0, [r5, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r6, #-0]
+stclge p14, c0, [r6, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r7, #-0]
+stclge p14, c0, [r7, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r8, #-0]
+stclge p14, c0, [r8, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r9, #-0]
+stclge p14, c0, [r9, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r10, #-0]
+stclge p14, c0, [r10, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r11, #-0]
+stclge p14, c0, [r11, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r12, #-0]
+stclge p14, c0, [r12, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [sp, #-0]
+stclge p14, c0, [sp, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [lr, #-0]
+stclge p14, c0, [lr, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [pc, #-0]
+stclge p14, c0, [pc, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r0, #-0]
+ldclge p14, c0, [r0, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r1, #-0]
+ldclge p14, c0, [r1, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r2, #-0]
+ldclge p14, c0, [r2, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r3, #-0]
+ldclge p14, c0, [r3, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r4, #-0]
+ldclge p14, c0, [r4, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r5, #-0]
+ldclge p14, c0, [r5, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r6, #-0]
+ldclge p14, c0, [r6, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r7, #-0]
+ldclge p14, c0, [r7, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r8, #-0]
+ldclge p14, c0, [r8, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r9, #-0]
+ldclge p14, c0, [r9, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r10, #-0]
+ldclge p14, c0, [r10, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r11, #-0]
+ldclge p14, c0, [r11, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r12, #-0]
+ldclge p14, c0, [r12, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [sp, #-0]
+ldclge p14, c0, [sp, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [lr, #-0]
+ldclge p14, c0, [lr, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [pc, #-0]
+ldclge p14, c0, [pc, #-0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r0, #-0]!
+stclge p14, c0, [r0, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r1, #-0]!
+stclge p14, c0, [r1, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r2, #-0]!
+stclge p14, c0, [r2, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r3, #-0]!
+stclge p14, c0, [r3, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r4, #-0]!
+stclge p14, c0, [r4, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r5, #-0]!
+stclge p14, c0, [r5, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r6, #-0]!
+stclge p14, c0, [r6, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r7, #-0]!
+stclge p14, c0, [r7, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r8, #-0]!
+stclge p14, c0, [r8, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r9, #-0]!
+stclge p14, c0, [r9, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r10, #-0]!
+stclge p14, c0, [r10, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r11, #-0]!
+stclge p14, c0, [r11, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r12, #-0]!
+stclge p14, c0, [r12, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [sp, #-0]!
+stclge p14, c0, [sp, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [lr, #-0]!
+stclge p14, c0, [lr, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [pc, #-0]!
+stclge p14, c0, [pc, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r0, #-0]!
+ldclge p14, c0, [r0, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r1, #-0]!
+ldclge p14, c0, [r1, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r2, #-0]!
+ldclge p14, c0, [r2, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r3, #-0]!
+ldclge p14, c0, [r3, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r4, #-0]!
+ldclge p14, c0, [r4, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r5, #-0]!
+ldclge p14, c0, [r5, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r6, #-0]!
+ldclge p14, c0, [r6, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r7, #-0]!
+ldclge p14, c0, [r7, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r8, #-0]!
+ldclge p14, c0, [r8, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r9, #-0]!
+ldclge p14, c0, [r9, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r10, #-0]!
+ldclge p14, c0, [r10, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r11, #-0]!
+ldclge p14, c0, [r11, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r12, #-0]!
+ldclge p14, c0, [r12, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [sp, #-0]!
+ldclge p14, c0, [sp, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [lr, #-0]!
+ldclge p14, c0, [lr, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [pc, #-0]!
+ldclge p14, c0, [pc, #-0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r0]
+stcge p14, c0, [r0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r1]
+stcge p14, c0, [r1]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r2]
+stcge p14, c0, [r2]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r3]
+stcge p14, c0, [r3]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r4]
+stcge p14, c0, [r4]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r5]
+stcge p14, c0, [r5]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r6]
+stcge p14, c0, [r6]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r7]
+stcge p14, c0, [r7]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r8]
+stcge p14, c0, [r8]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r9]
+stcge p14, c0, [r9]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r10]
+stcge p14, c0, [r10]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r11]
+stcge p14, c0, [r11]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r12]
+stcge p14, c0, [r12]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [sp]
+stcge p14, c0, [sp]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [lr]
+stcge p14, c0, [lr]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [pc]
+stcge p14, c0, [pc]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r0]
+ldcge p14, c0, [r0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r1]
+ldcge p14, c0, [r1]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r2]
+ldcge p14, c0, [r2]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r3]
+ldcge p14, c0, [r3]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r4]
+ldcge p14, c0, [r4]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r5]
+ldcge p14, c0, [r5]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r6]
+ldcge p14, c0, [r6]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r7]
+ldcge p14, c0, [r7]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r8]
+ldcge p14, c0, [r8]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r9]
+ldcge p14, c0, [r9]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r10]
+ldcge p14, c0, [r10]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r11]
+ldcge p14, c0, [r11]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r12]
+ldcge p14, c0, [r12]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [sp]
+ldcge p14, c0, [sp]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [lr]
+ldcge p14, c0, [lr]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [pc]
+ldcge p14, c0, [pc]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r0, #0]!
+stcge p14, c0, [r0, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r1, #0]!
+stcge p14, c0, [r1, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r2, #0]!
+stcge p14, c0, [r2, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r3, #0]!
+stcge p14, c0, [r3, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r4, #0]!
+stcge p14, c0, [r4, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r5, #0]!
+stcge p14, c0, [r5, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r6, #0]!
+stcge p14, c0, [r6, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r7, #0]!
+stcge p14, c0, [r7, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r8, #0]!
+stcge p14, c0, [r8, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r9, #0]!
+stcge p14, c0, [r9, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r10, #0]!
+stcge p14, c0, [r10, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r11, #0]!
+stcge p14, c0, [r11, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [r12, #0]!
+stcge p14, c0, [r12, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [sp, #0]!
+stcge p14, c0, [sp, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [lr, #0]!
+stcge p14, c0, [lr, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stcge p0, c0, [pc, #0]!
+stcge p14, c0, [pc, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r0, #0]!
+ldcge p14, c0, [r0, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r1, #0]!
+ldcge p14, c0, [r1, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r2, #0]!
+ldcge p14, c0, [r2, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r3, #0]!
+ldcge p14, c0, [r3, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r4, #0]!
+ldcge p14, c0, [r4, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r5, #0]!
+ldcge p14, c0, [r5, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r6, #0]!
+ldcge p14, c0, [r6, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r7, #0]!
+ldcge p14, c0, [r7, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r8, #0]!
+ldcge p14, c0, [r8, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r9, #0]!
+ldcge p14, c0, [r9, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r10, #0]!
+ldcge p14, c0, [r10, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r11, #0]!
+ldcge p14, c0, [r11, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [r12, #0]!
+ldcge p14, c0, [r12, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [sp, #0]!
+ldcge p14, c0, [sp, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [lr, #0]!
+ldcge p14, c0, [lr, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldcge p0, c0, [pc, #0]!
+ldcge p14, c0, [pc, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r0]
+stclge p14, c0, [r0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r1]
+stclge p14, c0, [r1]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r2]
+stclge p14, c0, [r2]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r3]
+stclge p14, c0, [r3]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r4]
+stclge p14, c0, [r4]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r5]
+stclge p14, c0, [r5]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r6]
+stclge p14, c0, [r6]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r7]
+stclge p14, c0, [r7]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r8]
+stclge p14, c0, [r8]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r9]
+stclge p14, c0, [r9]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r10]
+stclge p14, c0, [r10]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r11]
+stclge p14, c0, [r11]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r12]
+stclge p14, c0, [r12]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [sp]
+stclge p14, c0, [sp]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [lr]
+stclge p14, c0, [lr]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [pc]
+stclge p14, c0, [pc]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r0]
+ldclge p14, c0, [r0]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r1]
+ldclge p14, c0, [r1]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r2]
+ldclge p14, c0, [r2]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r3]
+ldclge p14, c0, [r3]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r4]
+ldclge p14, c0, [r4]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r5]
+ldclge p14, c0, [r5]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r6]
+ldclge p14, c0, [r6]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r7]
+ldclge p14, c0, [r7]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r8]
+ldclge p14, c0, [r8]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r9]
+ldclge p14, c0, [r9]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r10]
+ldclge p14, c0, [r10]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r11]
+ldclge p14, c0, [r11]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r12]
+ldclge p14, c0, [r12]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [sp]
+ldclge p14, c0, [sp]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [lr]
+ldclge p14, c0, [lr]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [pc]
+ldclge p14, c0, [pc]
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r0, #0]!
+stclge p14, c0, [r0, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r1, #0]!
+stclge p14, c0, [r1, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r2, #0]!
+stclge p14, c0, [r2, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r3, #0]!
+stclge p14, c0, [r3, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r4, #0]!
+stclge p14, c0, [r4, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r5, #0]!
+stclge p14, c0, [r5, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r6, #0]!
+stclge p14, c0, [r6, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r7, #0]!
+stclge p14, c0, [r7, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r8, #0]!
+stclge p14, c0, [r8, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r9, #0]!
+stclge p14, c0, [r9, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r10, #0]!
+stclge p14, c0, [r10, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r11, #0]!
+stclge p14, c0, [r11, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [r12, #0]!
+stclge p14, c0, [r12, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [sp, #0]!
+stclge p14, c0, [sp, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [lr, #0]!
+stclge p14, c0, [lr, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-stclge p0, c0, [pc, #0]!
+stclge p14, c0, [pc, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r0, #0]!
+ldclge p14, c0, [r0, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r1, #0]!
+ldclge p14, c0, [r1, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r2, #0]!
+ldclge p14, c0, [r2, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r3, #0]!
+ldclge p14, c0, [r3, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r4, #0]!
+ldclge p14, c0, [r4, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r5, #0]!
+ldclge p14, c0, [r5, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r6, #0]!
+ldclge p14, c0, [r6, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r7, #0]!
+ldclge p14, c0, [r7, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r8, #0]!
+ldclge p14, c0, [r8, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r9, #0]!
+ldclge p14, c0, [r9, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r10, #0]!
+ldclge p14, c0, [r10, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r11, #0]!
+ldclge p14, c0, [r11, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [r12, #0]!
+ldclge p14, c0, [r12, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [sp, #0]!
+ldclge p14, c0, [sp, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [lr, #0]!
+ldclge p14, c0, [lr, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
-ldclge p0, c0, [pc, #0]!
+ldclge p14, c0, [pc, #0]!
 @ CHECK: :[[@LINE+2]]:1: warning: deprecated instruction in IT block
 it ge
 andge r0, r0, #0
diff --git a/test/MC/Disassembler/ARM/coprocessors-arm.txt b/test/MC/Disassembler/ARM/coprocessors-arm.txt
new file mode 100644 (file)
index 0000000..c2e3240
--- /dev/null
@@ -0,0 +1,68 @@
+# RUN: not llvm-mc -triple=armv7 -disassemble < %s 2> %t | FileCheck --check-prefix=ACCEPT-01234567CD --check-prefix=ACCEPT-89 --check-prefix=ACCEPT-EF %s
+# RUN: FileCheck --check-prefix=REJECT-AB < %t %s
+# RUN: not llvm-mc -triple=armv8 -disassemble < %s 2> %t | FileCheck --check-prefix=ACCEPT-EF %s
+# RUN: FileCheck --check-prefix=REJECT-01234567CD --check-prefix=REJECT-89 --check-prefix=REJECT-AB < %t %s
+
+[0xb4,0x20,0x33,0xee]
+# ACCEPT-01234567CD: mrc   p0, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x21,0x33,0xee]
+# ACCEPT-01234567CD: mrc   p1, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x22,0x33,0xee]
+# ACCEPT-01234567CD: mrc   p2, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x23,0x33,0xee]
+# ACCEPT-01234567CD: mrc   p3, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x24,0x33,0xee]
+# ACCEPT-01234567CD: mrc   p4, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x25,0x33,0xee]
+# ACCEPT-01234567CD: mrc   p5, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x26,0x33,0xee]
+# ACCEPT-01234567CD: mrc   p6, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x27,0x33,0xee]
+# ACCEPT-01234567CD: mrc   p7, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x28,0x33,0xee]
+# ACCEPT-89: mrc   p8, #1, r2, c3, c4, #5
+# REJECT-89: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x29,0x33,0xee]
+# ACCEPT-89: mrc   p9, #1, r2, c3, c4, #5
+# REJECT-89: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x2a,0x33,0xee]
+# ACCEPT-AB: mrc   p10, #1, r2, c3, c4, #5
+# REJECT-AB: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x2b,0x33,0xee]
+# ACCEPT-AB: mrc   p11, #1, r2, c3, c4, #5
+# REJECT-AB: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x2c,0x33,0xee]
+# ACCEPT-01234567CD: mrc   p12, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x2d,0x33,0xee]
+# ACCEPT-01234567CD: mrc   p13, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x2e,0x33,0xee]
+# ACCEPT-EF: mrc   p14, #1, r2, c3, c4, #5
+# REJECT-EF: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0xb4,0x2f,0x33,0xee]
+# ACCEPT-EF: mrc   p15, #1, r2, c3, c4, #5
+# REJECT-EF: [[@LINE-2]]:2: warning: invalid instruction encoding
diff --git a/test/MC/Disassembler/ARM/coprocessors-thumb.txt b/test/MC/Disassembler/ARM/coprocessors-thumb.txt
new file mode 100644 (file)
index 0000000..9e3ae35
--- /dev/null
@@ -0,0 +1,70 @@
+# RUN: not llvm-mc -triple=thumbv7 -disassemble < %s 2> %t | FileCheck --check-prefix=ACCEPT-01234567CD --check-prefix=ACCEPT-89 --check-prefix=ACCEPT-EF %s
+# RUN: FileCheck --check-prefix=REJECT-AB < %t %s
+# RUN: not llvm-mc -triple=thumbv8 -disassemble < %s 2> %t | FileCheck --check-prefix=ACCEPT-EF %s
+# RUN: FileCheck --check-prefix=REJECT-01234567CD --check-prefix=REJECT-89 --check-prefix=REJECT-AB < %t %s
+# RUN: not llvm-mc -triple=thumbv8.1m.main -disassemble < %s 2> %t | FileCheck --check-prefix=ACCEPT-01234567CD %s
+# RUN: FileCheck --check-prefix=REJECT-89 --check-prefix=REJECT-AB --check-prefix=REJECT-EF < %t %s
+
+[0x33,0xee,0xb4,0x20]
+# ACCEPT-01234567CD: mrc   p0, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x21]
+# ACCEPT-01234567CD: mrc   p1, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x22]
+# ACCEPT-01234567CD: mrc   p2, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x23]
+# ACCEPT-01234567CD: mrc   p3, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x24]
+# ACCEPT-01234567CD: mrc   p4, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x25]
+# ACCEPT-01234567CD: mrc   p5, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x26]
+# ACCEPT-01234567CD: mrc   p6, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x27]
+# ACCEPT-01234567CD: mrc   p7, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x28]
+# ACCEPT-89: mrc   p8, #1, r2, c3, c4, #5
+# REJECT-89: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x29]
+# ACCEPT-89: mrc   p9, #1, r2, c3, c4, #5
+# REJECT-89: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x2a]
+# ACCEPT-AB: mrc   p10, #1, r2, c3, c4, #5
+# REJECT-AB: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x2b]
+# ACCEPT-AB: mrc   p11, #1, r2, c3, c4, #5
+# REJECT-AB: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x2c]
+# ACCEPT-01234567CD: mrc   p12, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x2d]
+# ACCEPT-01234567CD: mrc   p13, #1, r2, c3, c4, #5
+# REJECT-01234567CD: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x2e]
+# ACCEPT-EF: mrc   p14, #1, r2, c3, c4, #5
+# REJECT-EF: [[@LINE-2]]:2: warning: invalid instruction encoding
+
+[0x33,0xee,0xb4,0x2f]
+# ACCEPT-EF: mrc   p15, #1, r2, c3, c4, #5
+# REJECT-EF: [[@LINE-2]]:2: warning: invalid instruction encoding