# Test cases where MVC is used for spill slots that end up being out of range.
# RUN: python %s | llc -mtriple=s390x-linux-gnu | FileCheck %s

# There are 8 usable call-saved GPRs, two of which are needed for the base
# registers.  The first 160 bytes of the frame are needed for the ABI
# call frame, and a further 8 bytes are needed for the emergency spill slot.
# That means we will have at least one out-of-range slot if:
#
#    count == (4096 - 168) / 8 + 6 + 1 == 498
#
# Add in some extra room and check both %r15+4096 (the first out-of-range slot)
# and %r15+4104.
#
# CHECK: f1:
# CHECK: lay [[REG:%r[0-5]]], 4096(%r15)
# CHECK: mvc 0(8,[[REG]]), {{[0-9]+}}({{%r[0-9]+}})
# CHECK: brasl %r14, foo@PLT
# CHECK: lay [[REG:%r[0-5]]], 4096(%r15)
# CHECK: mvc {{[0-9]+}}(8,{{%r[0-9]+}}), 8([[REG]])
# CHECK: br %r14
count = 500

print 'declare void @foo()'
print ''
print 'define void @f1(i64 *%base0, i64 *%base1) {'

for i in range(count):
    print '  %%ptr%d = getelementptr i64, i64 *%%base%d, i64 %d' % (i, i % 2, i / 2)
    print '  %%val%d = load i64 , i64 *%%ptr%d' % (i, i)
    print ''

print '  call void @foo()'
print ''

for i in range(count):
    print '  store i64 %%val%d, i64 *%%ptr%d' % (i, i)

print ''
print '  ret void'
print '}'
