1# Test that inline assembly get the right size value so that a branch across
2# a block containing them gets relaxed.
3
4# RUN: %python %s | llc -mtriple=s390x-linux-gnu -mcpu=z196 -enable-post-misched=false \
5# RUN:    | FileCheck %s
6
7# Construct:
8#
9# entry:
10#   branch to block
11#
12# block:
13#   sequence of call asm
14#   unconditional branch to block
15#
16# exit:
17#   ret void
18
19# CHECK-LABEL: f1
20# CHECK: jg
21# CHECK-NEXT: .Lfunc_end0:
22
23from __future__ import print_function
24
25num = 11000
26
27print('define void @f1() {')
28print('entry:')
29print('  br label %block')
30print('')
31print('block:')
32
33for i in range(num):
34    print('  tail call i64 asm "lang\\09$0,$2,$1\\0A", "=d,=*Q,d,*Q"(i32* elementtype(i32) undef, i32 undef, i32* elementtype(i32) undef)')
35
36print('  br label %block')
37
38print('')
39print('exit:')
40print('  ret void')
41print('}')
42