1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 2; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s 3 4define i32 @test1(i32 %x) { 5; CHECK-LABEL: test1: 6; CHECK: # %bb.0: # %entry 7; CHECK-NEXT: #APP 8; CHECK-NEXT: .quad .Ltmp0 9; CHECK-NEXT: .quad .LBB0_1 10; CHECK-NEXT: #NO_APP 11; CHECK-NEXT: .LBB0_1: # Block address taken 12; CHECK-NEXT: # %bar 13; CHECK-NEXT: # Label of block must be emitted 14; CHECK-NEXT: pushq %rax 15; CHECK-NEXT: .cfi_def_cfa_offset 16 16; CHECK-NEXT: callq foo@PLT 17; CHECK-NEXT: addq $8, %rsp 18; CHECK-NEXT: .cfi_def_cfa_offset 8 19; CHECK-NEXT: .Ltmp0: # Block address taken 20; CHECK-NEXT: # %bb.2: # %baz 21; CHECK-NEXT: movl %eax, %edi 22; CHECK-NEXT: jmp mux@PLT # TAILCALL 23entry: 24 callbr void asm sideeffect ".quad ${0:l}\0A\09.quad ${1:l}", "i,!i,~{dirflag},~{fpsr},~{flags}"(ptr blockaddress(@test1, %baz)) 25 to label %asm.fallthrough [label %bar] 26 27asm.fallthrough: 28 br label %bar 29 30bar: 31 %call = tail call i32 @foo(i32 %x) 32 br label %baz 33 34baz: 35 %call1 = tail call i32 @mux(i32 %call) 36 ret i32 %call1 37} 38 39declare i32 @foo(i32) 40 41declare i32 @mux(i32) 42