48 lines · plain
1/// Checks that various hexagon scenarios are handled correctly:2/// - branch targets3/// - endloops4/// - inline-relocs5/// - multi-insn bundles6 7{8 r6 = sub(r1, r0)9 r7 = and(r4, #0x0)10 if (p1) jump:t target111 if (p2) jump:nt target212}13 14{15 r8 = r716 r9 = add(r8, #0)17 r10 = memw(r9)18} :endloop019 20{ jump ##sym }21 22target1:23 nop24 25target2:26 nop27 28// RUN: llvm-mc %s --triple=hexagon -filetype=obj | llvm-objdump -d -r - | FileCheck %s29 30// CHECK: 00000000 <.text>:31// CHECK-NEXT: 0: 12 51 00 5c 5c005112 { if (p1) jump:t 0x24 <target1>32// CHECK-NEXT: 4: 14 42 00 5c 5c004214 if (p2) jump:nt 0x28 <target2>33// CHECK-NEXT: 8: 06 41 20 f3 f3204106 r6 = sub(r1,r0)34// CHECK-NEXT: c: 07 c0 04 76 7604c007 r7 = and(r4,#0x0) }35// CHECK-NEXT: 10: 08 80 67 70 70678008 { r8 = r736// CHECK-NEXT: 14: 09 40 08 b0 b0084009 r9 = add(r8,#0x0)37// CHECK-NEXT: 18: 0a c0 89 91 9189c00a r10 = memw(r9+#0x0) } :endloop038// CHECK-NEXT: 1c: 00 40 00 00 00004000 { immext(#0x0)39// CHECK-NEXT: 0000001c: R_HEX_B32_PCREL_X sym40// CHECK-NEXT: 20: 00 c0 00 58 5800c000 jump 0x1c <.text+0x1c> }41// CHECK-NEXT: 00000020: R_HEX_B22_PCREL_X sym+0x442// CHECK-EMPTY:43// CHECK-NEXT: 00000024 <target1>:44// CHECK-NEXT: 24: 00 c0 00 7f 7f00c000 { nop }45// CHECK-EMPTY:46// CHECK-NEXT: 00000028 <target2>:47// CHECK-NEXT: 28: 00 c0 00 7f 7f00c000 { nop }48