| # 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* elementtype(i32) undef, i32 undef, i32* elementtype(i32) undef)' | |
| ) | |
| print(" br label %block") | |
| print("") | |
| print("exit:") | |
| print(" ret void") | |
| print("}") |