[ARM] Better OR's for MVE compares
[llvm-core.git] / test / MC / ARM / unpred-control-flow-in-it-block.s
blob885d158d83dd3f17d5e5951a51e29d4c507a75e3
1 @ RUN: not llvm-mc -triple=thumbv7m--none-eabi < %s 2>&1 | FileCheck %s
3 @ These instructions all write to the PC, so are UNPREDICTABLE if they are in
4 @ an IT block, but not the last instruction in the block.
6 itttt eq
7 addeq pc, r0
8 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
9 addeq pc, sp, pc
10 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
11 beq.n #.+0x20
12 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
13 nopeq
14 itttt eq
15 beq.w #.+0x20
16 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
17 bleq sym
18 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
19 blxeq r0
20 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
21 nopeq
22 itttt eq
23 bxeq r0
24 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
25 ldmeq r0, {r8, pc}
26 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
27 ldmdbeq r0, {r8, pc}
28 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
29 nopeq
30 itttt eq
31 ldreq pc, [r0, #4]
32 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
33 ldreq pc, [r0, #-4]
34 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
35 ldreq pc, [pc, #4]
36 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
37 nopeq
38 itttt eq
39 ldreq pc, [r0, r1, LSL #1]
40 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
41 moveq pc, r0
42 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
43 popeq {r0, pc}
44 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
45 nopeq
46 itttt eq
47 popeq {r8, pc}
48 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
49 popeq {pc}
50 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
51 tbbeq [r0, r1]
52 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
53 nopeq
54 itt eq
55 tbheq [r0, r1, LSL #1]
56 @ CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must be outside of IT block or the last instruction in an IT block
57 nopeq