llvm/llvm/test/MC/SystemZ/fixups-out-of-range-02.s

# RUN: not llvm-mc -triple s390x-unknown-unknown -filetype=obj -mcpu=zEC12 \
# RUN:   -o /dev/null %s 2>&1 | FileCheck %s

	.text

# Test fixup ranges, which are encoded as half-words.

# 12-bit
# CHECK:      error: operand out of range (4096 not between -4096 and 4094)
# CHECK-NEXT:        bprp 0, .Lab1, 0
# CHECK-NEXT:        ^
# CHECK-NEXT: error: operand out of range (-4098 not between -4096 and 4094)
# CHECK-NEXT:        bprp 0, .Lab0, 0
# CHECK-NEXT:        ^
        bprp 0, .Lab1, 0
.Lab0:
        bprp 0, .Lab1, 0
        .space 4084
.Lab1:
	nopr
        bprp 0, .Lab0, 0
        bprp 0, .Lab0, 0

# 24-bit
# CHECK-NEXT: error: operand out of range (16777220 not between -16777216 and 16777214)
# CHECK-NEXT:        bprp 0, 0, .Lab3
# CHECK-NEXT:        ^
# CHECK-NEXT: error: operand out of range (-16777222 not between -16777216 and 16777214)
# CHECK-NEXT:        bprp 0, 0, .Lab2
# CHECK-NEXT:        ^
        bprp 0, 0, .Lab3
.Lab2:
        bprp 0, 0, .Lab3
        .space 16777208
.Lab3:
	nopr
        bprp 0, 0, .Lab2
        bprp 0, 0, .Lab2

# 16-bit
# CHECK-NEXT: error: operand out of range (65540 not between -65536 and 65534)
# CHECK-NEXT:        cij %r1, 0, 0, .Lab5
# CHECK-NEXT:        ^
# CHECK-NEXT: error: operand out of range (-65542 not between -65536 and 65534)
# CHECK-NEXT:        cij %r1, 0, 0, .Lab4
# CHECK-NEXT:        ^
        cij %r1, 0, 0, .Lab5
.Lab4:
        cij %r1, 0, 0, .Lab5
        .space 65528
.Lab5:
	nopr
        cij %r1, 0, 0, .Lab4
        cij %r1, 0, 0, .Lab4

# 32-bit
# Unfortunately there is no support for offsets greater than 32 bits, so we have
# to for now assume they are in range.

# CHECK-NOT: error