@@ -13,8 +13,8 @@ declare void @effect(i32 zeroext)
13
13
; RUN: echo 'v1' > %t2
14
14
; RUN: echo 'f foo' >> %t2
15
15
; RUN: echo 'p 0 2 3' >> %t2
16
- ; RUN: echo 'p 0 1 3' >> %t2
17
- ; RUN: echo 'c 0 1.1 3.2 2.1 3.1 1' >> %t2
16
+ ; RUN: echo 'p 0 1 2 3' >> %t2
17
+ ; RUN: echo 'c 0 1.1 2.2 3.2 2.1 3.1 1' >> %t2
18
18
; RUN: llc < %s -mtriple=x86_64-pc-linux -O0 -function-sections -basic-block-sections=%t2 2> %t2.err | FileCheck %s --check-prefixes=PATH
19
19
; RUN: FileCheck %s --check-prefixes=WARN1 < %t2.err
20
20
; RUN: echo 'v1' > %t3
@@ -23,6 +23,14 @@ declare void @effect(i32 zeroext)
23
23
; RUN: echo 'c 0 100.1 1' >> %t3
24
24
; RUN: llc < %s -mtriple=x86_64-pc-linux -O0 -function-sections -basic-block-sections=%t3 2> %t3.err | FileCheck %s
25
25
; RUN: FileCheck %s --check-prefixes=WARN2 < %t3.err
26
+ ; RUN: echo 'v1' > %t4
27
+ ; RUN: echo 'f foo' >> %t4
28
+ ; RUN: echo 'p 1 6' >> %t4
29
+ ; RUN: echo 'c 0 1 6.1' >> %t4
30
+ ; RUN: llc < %s -mtriple=x86_64-pc-linux -O0 -function-sections -basic-block-sections=%t4 2> %t4.err | FileCheck %s
31
+ ; RUN: FileCheck %s --check-prefixes=WARN3 < %t4.err
32
+
33
+
26
34
27
35
define void @foo (i1 %a , i1 %b , i1 %c , i1 %d ) {
28
36
b0:
31
39
32
40
b1: ; preds = %b0
33
41
call void @effect (i32 1 )
34
- br i1 %b , label %b2 , label %b3
42
+ br i1 %b , label %b2 , label %b6
35
43
36
44
b2: ; preds = %b1
37
45
call void @effect (i32 2 )
38
46
br label %b3
39
47
40
- b3: ; preds = %b0, %b1, % b2
48
+ b3: ; preds = %b0, %b2
41
49
call void @effect (i32 3 )
42
50
br i1 %c , label %b4 , label %b5
43
51
44
52
b4: ; preds = %b3
45
53
call void @effect (i32 4 )
46
- br i1 %d , label %b5 , label %cold
54
+ callbr void asm sideeffect "je ${0:l}" , "!i,~{dirflag},~{fpsr},~{flags}" ()
55
+ to label %b5 [label %b6 ]
47
56
48
57
b5: ; preds = %b3, %b4
49
58
call void @effect (i32 5 )
50
59
ret void
60
+
61
+ b6: ; preds = %b1, %b4
62
+ call void @effect (i32 6 )
63
+ ret void
64
+
51
65
cold:
52
66
call void @effect (i32 6 ) ; preds = %b4
53
67
ret void
59
73
60
74
; CHECK: je .LBB0_3
61
75
; PATH: # %bb.7: # %b1
62
- ; PATH: # %bb.8: # %b3
76
+ ; PATH: # %bb.8: # %b2
63
77
; PATH: jne .LBB0_4
64
78
; CHECK: # %bb.1: # %b1
65
79
; CHECK: jne foo.cold
69
83
;; Check the warnings
70
84
; WARN1: warning: block #2 is not a successor of block #0 in function foo
71
85
; WARN2: warning: no block with id 100 in function foo
86
+ ; WARN3: warning: block #6 has its machine block address taken in function foo
72
87
0 commit comments