1// RUN: not llvm-mc -triple arm-eabi -mattr=+v5te %s -o /dev/null 2>&1 | FileCheck %s
2//
3// rdar://14479793
4
5ldrd r1, r2, [pc, #0]
6ldrd r1, r2, [r3, #4]
7ldrd r1, r2, [r3], #4
8ldrd r1, r2, [r3, #4]!
9ldrd r1, r2, [r3, -r4]!
10ldrd r1, r2, [r3, r4]
11ldrd r1, r2, [r3], r4
12// CHECK: error: Rt must be even-numbered
13// CHECK: error: Rt must be even-numbered
14// CHECK: error: Rt must be even-numbered
15// CHECK: error: Rt must be even-numbered
16// CHECK: error: Rt must be even-numbered
17// CHECK: error: Rt must be even-numbered
18// CHECK: error: Rt must be even-numbered
19
20ldrd r0, r3, [pc, #0]
21ldrd r0, r3, [r4, #4]
22ldrd r0, r3, [r4], #4
23ldrd r0, r3, [r4, #4]!
24ldrd r0, r3, [r4, -r5]!
25ldrd r0, r3, [r4, r5]
26ldrd r0, r3, [r4], r5
27// CHECK: error: destination operands must be sequential
28// CHECK: error: destination operands must be sequential
29// CHECK: error: destination operands must be sequential
30// CHECK: error: destination operands must be sequential
31// CHECK: error: destination operands must be sequential
32// CHECK: error: destination operands must be sequential
33// CHECK: error: destination operands must be sequential
34
35ldrd lr, pc, [pc, #0]
36ldrd lr, pc, [r3, #4]
37ldrd lr, pc, [r3], #4
38ldrd lr, pc, [r3, #4]!
39ldrd lr, pc, [r3, -r4]!
40ldrd lr, pc, [r3, r4]
41ldrd lr, pc, [r3], r4
42// CHECK: error: Rt can't be R14
43// CHECK: error: Rt can't be R14
44// CHECK: error: Rt can't be R14
45// CHECK: error: Rt can't be R14
46// CHECK: error: Rt can't be R14
47// CHECK: error: Rt can't be R14
48// CHECK: error: Rt can't be R14
49
50ldrd r0, r1, [r0], #4
51ldrd r0, r1, [r1], #4
52ldrd r0, r1, [r0, #4]!
53ldrd r0, r1, [r1, #4]!
54// CHECK: error: base register needs to be different from destination registers
55// CHECK: error: base register needs to be different from destination registers
56// CHECK: error: base register needs to be different from destination registers
57// CHECK: error: base register needs to be different from destination registers
58