Stackmap shadows should consider call returns a branch target.
[oota-llvm.git] / test / CodeGen / X86 / asm-block-labels.ll
1 ; RUN: opt < %s -O3 | llc -no-integrated-as
2 ; ModuleID = 'block12.c'
3 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
4 target triple = "i686-apple-darwin8"
5
6 define void @bar() {
7 entry:
8         br label %"LASM$foo"
9
10 "LASM$foo":             ; preds = %entry
11         call void asm sideeffect ".file \22block12.c\22", "~{dirflag},~{fpsr},~{flags}"( )
12         call void asm sideeffect ".line 1", "~{dirflag},~{fpsr},~{flags}"( )
13         call void asm sideeffect "int $$1", "~{dirflag},~{fpsr},~{flags},~{memory}"( )
14         call void asm sideeffect ".file \22block12.c\22", "~{dirflag},~{fpsr},~{flags}"( )
15         call void asm sideeffect ".line 2", "~{dirflag},~{fpsr},~{flags}"( )
16         call void asm sideeffect "brl ${0:l}", "X,~{dirflag},~{fpsr},~{flags},~{memory}"( label %"LASM$foo" )
17         br label %return
18
19 return:         ; preds = %"LASM$foo"
20         ret void
21 }
22
23 define void @baz() {
24 entry:
25         call void asm sideeffect ".file \22block12.c\22", "~{dirflag},~{fpsr},~{flags}"( )
26         call void asm sideeffect ".line 3", "~{dirflag},~{fpsr},~{flags}"( )
27         call void asm sideeffect "brl ${0:l}", "X,~{dirflag},~{fpsr},~{flags},~{memory}"( label %"LASM$foo" )
28         call void asm sideeffect ".file \22block12.c\22", "~{dirflag},~{fpsr},~{flags}"( )
29         call void asm sideeffect ".line 4", "~{dirflag},~{fpsr},~{flags}"( )
30         call void asm sideeffect "int $$1", "~{dirflag},~{fpsr},~{flags},~{memory}"( )
31         br label %"LASM$foo"
32
33 "LASM$foo":             ; preds = %entry
34         call void asm sideeffect ".file \22block12.c\22", "~{dirflag},~{fpsr},~{flags}"( )
35         call void asm sideeffect ".line 5", "~{dirflag},~{fpsr},~{flags}"( )
36         call void asm sideeffect "int $$1", "~{dirflag},~{fpsr},~{flags},~{memory}"( )
37         br label %return
38
39 return:         ; preds = %"LASM$foo"
40         ret void
41 }