1@ RUN: not llvm-mc -triple=thumbv7m--none-eabi < %s 2>&1 | FileCheck %s 2 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. 5 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 58