42 lines
791 B
Python
42 lines
791 B
Python
# Test that inline assembly get the right size value so that a branch across
|
|
# a block containing them gets relaxed.
|
|
|
|
# RUN: python %s | llc -mtriple=s390x-linux-gnu -mcpu=z196 -enable-post-misched=false \
|
|
# RUN: | FileCheck %s
|
|
|
|
# Construct:
|
|
#
|
|
# entry:
|
|
# branch to block
|
|
#
|
|
# block:
|
|
# sequence of call asm
|
|
# unconditional branch to block
|
|
#
|
|
# exit:
|
|
# ret void
|
|
|
|
# CHECK-LABEL: f1
|
|
# CHECK: jg
|
|
# CHECK-NEXT: .Lfunc_end0:
|
|
|
|
from __future__ import print_function
|
|
|
|
num = 11000
|
|
|
|
print('define void @f1() {')
|
|
print('entry:')
|
|
print(' br label %block')
|
|
print('')
|
|
print('block:')
|
|
|
|
for i in range(num):
|
|
print(' tail call i64 asm "lang\\09$0,$2,$1\\0A", "=d,=*Q,d,*Q"(i32* undef, i32 undef, i32* undef)')
|
|
|
|
print(' br label %block')
|
|
|
|
print('')
|
|
print('exit:')
|
|
print(' ret void')
|
|
print('}')
|