xref: /llvm-project/llvm/test/MC/ARM/arm-memory-instructions-immediate.s (revision 231ef2104d15c306f0e362db649cf241ac575d09)
175cdab6dSDaniel Thornburgh// RUN: llvm-mc -triple=armv7 -filetype=obj %s | llvm-objdump --no-print-imm-hex --triple=armv7 -d - | FileCheck %s
2cfce5b26SJian Cai// RUN: not llvm-mc -triple=armv7 -filetype=obj --defsym=ERR=1 < %s -o /dev/null 2>&1 | FileCheck --check-prefix=ERR %s
3cfce5b26SJian Cai
4cfce5b26SJian Cai    .syntax unified
5cfce5b26SJian Cai// Check that the assembler accepts the result of symbolic expressions as the
6cfce5b26SJian Cai// immediate operand in load and stores.
7cfce5b26SJian Cai0:
8cfce5b26SJian Cai// CHECK-LABEL: foo
9cfce5b26SJian Cai    .space 1024
10cfce5b26SJian Cai1:
11cfce5b26SJian Caifoo:
12cfce5b26SJian Cai    ldr r0, [r1, #(1b - 0b)]
13cfce5b26SJian Cai// CHECK-NEXT: ldr r0, [r1, #1024]
14cfce5b26SJian Cai    ldr r0, [r1, #(0b - 1b)]
15cfce5b26SJian Cai// CHECK-NEXT: ldr r0, [r1, #-1024]
16cfce5b26SJian Cai    ldrb r0, [r1, #(1b-0b)]
17cfce5b26SJian Cai// CHECK-NEXT: ldrb r0, [r1, #1024]
18cfce5b26SJian Cai    str r0, [r1, #(1b-0b)]
19cfce5b26SJian Cai// CHECK-NEXT: str r0, [r1, #1024]
20cfce5b26SJian Cai    strb r0, [r1, #(1b-0b)]
21cfce5b26SJian Cai// CHECK-NEXT: strb r0, [r1, #1024]
22cfce5b26SJian Cai.ifdef ERR
23cfce5b26SJian Cai    str r0, [r1, 1b]
24*231ef210SFangrui Song// ERR:[[#@LINE-1]]:5: error: unsupported relocation type
25cfce5b26SJian Cai.endif
26