Fix a bug with the ARM thumb2 CBNZ and CBNZ instructions that
[oota-llvm.git] / test / MC / ARM / thumb2-cbn-to-next-inst.s
1 @ RUN: llvm-mc -triple thumbv7-apple-darwin -filetype=obj -o %t.o %s
2 @ RUN: llvm-objdump -triple thumbv7-apple-darwin -d %t.o | FileCheck %s
3
4 .thumb
5 start:
6 .thumb_func start
7         add      r1, r2, r3
8         cbnz     r2, L1 @ this can't be encoded, must turn into a nop
9 L1:
10         add     r4, r5, r6
11         cbnz    r2, L2
12         sub     r7, r8, r9
13 L2:
14         add     r7, r8, r9
15         cbz     r2, L3 @ this can't be encoded, must turn into a nop
16 L3:
17         add     r10, r11, r12
18         cbz     r2, L4
19         sub     r7, r8, r9
20 L4:
21         add     r3, r4, r5
22
23 @ CHECK: 0:     02 eb 03 01     add.w   r1, r2, r3
24 @ CHECK: 4:     00 bf           nop
25 @ CHECK: 6:     05 eb 06 04     add.w   r4, r5, r6
26 @ CHECK: a:     0a b9           cbnz    r2, #2
27 @ CHECK: c:     a8 eb 09 07     sub.w   r7, r8, r9
28 @ CHECK: 10:    08 eb 09 07     add.w   r7, r8, r9
29 @ CHECK: 14:    00 bf           nop
30 @ CHECK: 16:    0b eb 0c 0a     add.w   r10, r11, r12
31 @ CHECK: 1a:    0a b1           cbz     r2, #2
32 @ CHECK: 1c:    a8 eb 09 07     sub.w   r7, r8, r9
33 @ CHECK: 20:    04 eb 05 03     add.w   r3, r4, r5