xref: /llvm-project/llvm/test/CodeGen/X86/2006-10-19-SwitchUnnecessaryBranching.ll (revision 2f448bf509432c1a19ec46ab8cbc7353c03c6280)
1; RUN: llc < %s -mtriple=i686-- -asm-verbose | FileCheck %s
2
3@str = internal constant [14 x i8] c"Hello world!\0A\00"		; <ptr> [#uses=1]
4@str.upgrd.1 = internal constant [13 x i8] c"Blah world!\0A\00"		; <ptr> [#uses=1]
5
6define i32 @test(i32 %argc, ptr %argv) nounwind {
7entry:
8; CHECK: cmpl	$2
9; CHECK-NEXT: je
10; CHECK-NEXT: %entry
11
12	switch i32 %argc, label %UnifiedReturnBlock [
13		 i32 1, label %bb
14		 i32 2, label %bb2
15	]
16
17bb:		; preds = %entry
18	%tmp1 = tail call i32 (ptr, ...) @printf( ptr @str )		; <i32> [#uses=0]
19	ret i32 0
20
21bb2:		; preds = %entry
22	%tmp4 = tail call i32 (ptr, ...) @printf( ptr @str.upgrd.1 )		; <i32> [#uses=0]
23	ret i32 0
24
25UnifiedReturnBlock:		; preds = %entry
26	ret i32 0
27}
28
29declare i32 @printf(ptr, ...)
30