xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2006-10-19-SwitchUnnecessaryBranching.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 -asm-verbose | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker@str = internal constant [14 x i8] c"Hello world!\0A\00"		; <[14 x i8]*> [#uses=1]
4*9880d681SAndroid Build Coastguard Worker@str.upgrd.1 = internal constant [13 x i8] c"Blah world!\0A\00"		; <[13 x i8]*> [#uses=1]
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine i32 @test(i32 %argc, i8** %argv) nounwind {
7*9880d681SAndroid Build Coastguard Workerentry:
8*9880d681SAndroid Build Coastguard Worker; CHECK: cmpl	$2
9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: je
10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %entry
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker	switch i32 %argc, label %UnifiedReturnBlock [
13*9880d681SAndroid Build Coastguard Worker		 i32 1, label %bb
14*9880d681SAndroid Build Coastguard Worker		 i32 2, label %bb2
15*9880d681SAndroid Build Coastguard Worker	]
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Workerbb:		; preds = %entry
18*9880d681SAndroid Build Coastguard Worker	%tmp1 = tail call i32 (i8*, ...) @printf( i8* getelementptr ([14 x i8], [14 x i8]* @str, i32 0, i64 0) )		; <i32> [#uses=0]
19*9880d681SAndroid Build Coastguard Worker	ret i32 0
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerbb2:		; preds = %entry
22*9880d681SAndroid Build Coastguard Worker	%tmp4 = tail call i32 (i8*, ...) @printf( i8* getelementptr ([13 x i8], [13 x i8]* @str.upgrd.1, i32 0, i64 0) )		; <i32> [#uses=0]
23*9880d681SAndroid Build Coastguard Worker	ret i32 0
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard WorkerUnifiedReturnBlock:		; preds = %entry
26*9880d681SAndroid Build Coastguard Worker	ret i32 0
27*9880d681SAndroid Build Coastguard Worker}
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workerdeclare i32 @printf(i8*, ...)
30