xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2008-03-14-SpillerCrash.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=i386-pc-linux-gnu
2*9880d681SAndroid Build Coastguard Worker; PR2138
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker	%struct.__locale_struct = type { [13 x %struct.locale_data*], i16*, i32*, i32*, [13 x i8*] }
5*9880d681SAndroid Build Coastguard Worker	%struct.anon = type { i8* }
6*9880d681SAndroid Build Coastguard Worker	%struct.locale_data = type { i8*, i8*, i32, i32, { void (%struct.locale_data*)*, %struct.anon }, i32, i32, i32, [0 x %struct.locale_data_value] }
7*9880d681SAndroid Build Coastguard Worker	%struct.locale_data_value = type { i32* }
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker@wcstoll_l = alias i64 (i32*, i32**, i32, %struct.__locale_struct*), i64 (i32*, i32**, i32, %struct.__locale_struct*)* @__wcstoll_l
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdefine i64 @____wcstoll_l_internal(i32* %nptr, i32** %endptr, i32 %base, i32 %group, %struct.__locale_struct* %loc) nounwind  {
12*9880d681SAndroid Build Coastguard Workerentry:
13*9880d681SAndroid Build Coastguard Worker	%tmp27 = load i32, i32* null, align 4		; <i32> [#uses=1]
14*9880d681SAndroid Build Coastguard Worker	%tmp83 = getelementptr i32, i32* %nptr, i32 1		; <i32*> [#uses=1]
15*9880d681SAndroid Build Coastguard Worker	%tmp233 = add i32 0, -48		; <i32> [#uses=1]
16*9880d681SAndroid Build Coastguard Worker	br label %bb271.us
17*9880d681SAndroid Build Coastguard Workerbb271.us:		; preds = %entry
18*9880d681SAndroid Build Coastguard Worker	br label %bb374.outer
19*9880d681SAndroid Build Coastguard Workerbb311.split:		; preds = %bb305.us
20*9880d681SAndroid Build Coastguard Worker	%tmp313 = add i32 %tmp378.us, -48		; <i32> [#uses=1]
21*9880d681SAndroid Build Coastguard Worker	br i1 false, label %bb374.outer, label %bb383
22*9880d681SAndroid Build Coastguard Workerbb327.split:		; preds = %bb314.us
23*9880d681SAndroid Build Coastguard Worker	ret i64 0
24*9880d681SAndroid Build Coastguard Workerbb374.outer:		; preds = %bb311.split, %bb271.us
25*9880d681SAndroid Build Coastguard Worker	%tmp370371552.pn.in = phi i32 [ %tmp233, %bb271.us ], [ %tmp313, %bb311.split ]		; <i32> [#uses=1]
26*9880d681SAndroid Build Coastguard Worker	%tmp278279.pn = phi i64 [ 0, %bb271.us ], [ %tmp373.reg2mem.0.ph, %bb311.split ]		; <i64> [#uses=1]
27*9880d681SAndroid Build Coastguard Worker	%s.5.ph = phi i32* [ null, %bb271.us ], [ %tmp376.us, %bb311.split ]		; <i32*> [#uses=1]
28*9880d681SAndroid Build Coastguard Worker	%tmp366367550.pn = sext i32 %base to i64		; <i64> [#uses=1]
29*9880d681SAndroid Build Coastguard Worker	%tmp370371552.pn = zext i32 %tmp370371552.pn.in to i64		; <i64> [#uses=1]
30*9880d681SAndroid Build Coastguard Worker	%tmp369551.pn = mul i64 %tmp278279.pn, %tmp366367550.pn		; <i64> [#uses=1]
31*9880d681SAndroid Build Coastguard Worker	%tmp373.reg2mem.0.ph = add i64 %tmp370371552.pn, %tmp369551.pn		; <i64> [#uses=1]
32*9880d681SAndroid Build Coastguard Worker	br label %bb374.us
33*9880d681SAndroid Build Coastguard Workerbb374.us:		; preds = %bb314.us, %bb374.outer
34*9880d681SAndroid Build Coastguard Worker	%tmp376.us = getelementptr i32, i32* %s.5.ph, i32 0		; <i32*> [#uses=3]
35*9880d681SAndroid Build Coastguard Worker	%tmp378.us = load i32, i32* %tmp376.us, align 4		; <i32> [#uses=2]
36*9880d681SAndroid Build Coastguard Worker	%tmp302.us = icmp eq i32* %tmp376.us, %tmp83		; <i1> [#uses=1]
37*9880d681SAndroid Build Coastguard Worker	%bothcond484.us = or i1 false, %tmp302.us		; <i1> [#uses=1]
38*9880d681SAndroid Build Coastguard Worker	br i1 %bothcond484.us, label %bb383, label %bb305.us
39*9880d681SAndroid Build Coastguard Workerbb305.us:		; preds = %bb374.us
40*9880d681SAndroid Build Coastguard Worker	br i1 false, label %bb311.split, label %bb314.us
41*9880d681SAndroid Build Coastguard Workerbb314.us:		; preds = %bb305.us
42*9880d681SAndroid Build Coastguard Worker	%tmp320.us = icmp eq i32 %tmp378.us, %tmp27		; <i1> [#uses=1]
43*9880d681SAndroid Build Coastguard Worker	br i1 %tmp320.us, label %bb374.us, label %bb327.split
44*9880d681SAndroid Build Coastguard Workerbb383:		; preds = %bb374.us, %bb311.split
45*9880d681SAndroid Build Coastguard Worker	ret i64 0
46*9880d681SAndroid Build Coastguard Worker}
47*9880d681SAndroid Build Coastguard Worker
48*9880d681SAndroid Build Coastguard Workerdefine i64 @__wcstoll_l(i32*, i32**, i32, %struct.__locale_struct*) nounwind {
49*9880d681SAndroid Build Coastguard Worker  ret i64 0
50*9880d681SAndroid Build Coastguard Worker}
51