brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 6a4927e Raw
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