xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2007-08-09-IllegalX86-64Asm.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-darwin | not grep "movb   %ah, %r"
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker	%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, [4 x i8], i64 }
4*9880d681SAndroid Build Coastguard Worker	%struct.PyBoolScalarObject = type { i64, %struct._typeobject*, i8 }
5*9880d681SAndroid Build Coastguard Worker	%struct.PyBufferProcs = type { i64 (%struct.PyObject*, i64, i8**)*, i64 (%struct.PyObject*, i64, i8**)*, i64 (%struct.PyObject*, i64*)*, i64 (%struct.PyObject*, i64, i8**)* }
6*9880d681SAndroid Build Coastguard Worker	%struct.PyGetSetDef = type { i8*, %struct.PyObject* (%struct.PyObject*, i8*)*, i32 (%struct.PyObject*, %struct.PyObject*, i8*)*, i8*, i8* }
7*9880d681SAndroid Build Coastguard Worker	%struct.PyMappingMethods = type { i64 (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, i32 (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)* }
8*9880d681SAndroid Build Coastguard Worker	%struct.PyMemberDef = type opaque
9*9880d681SAndroid Build Coastguard Worker	%struct.PyMethodDef = type { i8*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, i32, i8* }
10*9880d681SAndroid Build Coastguard Worker	%struct.PyNumberMethods = type { %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, i32 (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, i32 (%struct.PyObject**, %struct.PyObject**)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)* }
11*9880d681SAndroid Build Coastguard Worker	%struct.PyObject = type { i64, %struct._typeobject* }
12*9880d681SAndroid Build Coastguard Worker	%struct.PySequenceMethods = type { i64 (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, i64)*, %struct.PyObject* (%struct.PyObject*, i64)*, %struct.PyObject* (%struct.PyObject*, i64, i64)*, i32 (%struct.PyObject*, i64, %struct.PyObject*)*, i32 (%struct.PyObject*, i64, i64, %struct.PyObject*)*, i32 (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, i64)* }
13*9880d681SAndroid Build Coastguard Worker	%struct.PyTupleObject = type { i64, %struct._typeobject*, i64, [1 x %struct.PyObject*] }
14*9880d681SAndroid Build Coastguard Worker	%struct.__sFILEX = type opaque
15*9880d681SAndroid Build Coastguard Worker	%struct.__sbuf = type { i8*, i32 }
16*9880d681SAndroid Build Coastguard Worker	%struct._typeobject = type { i64, %struct._typeobject*, i64, i8*, i64, i64, void (%struct.PyObject*)*, i32 (%struct.PyObject*, %struct.FILE*, i32)*, %struct.PyObject* (%struct.PyObject*, i8*)*, i32 (%struct.PyObject*, i8*, %struct.PyObject*)*, i32 (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyNumberMethods*, %struct.PySequenceMethods*, %struct.PyMappingMethods*, i64 (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, i32 (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, %struct.PyBufferProcs*, i64, i8*, i32 (%struct.PyObject*, i32 (%struct.PyObject*, i8*)*, i8*)*, i32 (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*, i32)*, i64, %struct.PyObject* (%struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*)*, %struct.PyMethodDef*, %struct.PyMemberDef*, %struct.PyGetSetDef*, %struct._typeobject*, %struct.PyObject*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, i32 (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, i64, i32 (%struct.PyObject*, %struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct._typeobject*, i64)*, %struct.PyObject* (%struct._typeobject*, %struct.PyObject*, %struct.PyObject*)*, void (i8*)*, i32 (%struct.PyObject*)*, %struct.PyObject*, %struct.PyObject*, %struct.PyObject*, %struct.PyObject*, %struct.PyObject*, void (%struct.PyObject*)* }
17*9880d681SAndroid Build Coastguard Worker@PyArray_API = external global i8**		; <i8***> [#uses=4]
18*9880d681SAndroid Build Coastguard Worker@PyUFunc_API = external global i8**		; <i8***> [#uses=4]
19*9880d681SAndroid Build Coastguard Worker@.str5 = external constant [14 x i8]		; <[14 x i8]*> [#uses=1]
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerdefine %struct.PyObject* @ubyte_divmod(%struct.PyObject* %a, %struct.PyObject* %b) {
22*9880d681SAndroid Build Coastguard Workerentry:
23*9880d681SAndroid Build Coastguard Worker	%arg1 = alloca i8, align 1		; <i8*> [#uses=3]
24*9880d681SAndroid Build Coastguard Worker	%arg2 = alloca i8, align 1		; <i8*> [#uses=3]
25*9880d681SAndroid Build Coastguard Worker	%first = alloca i32, align 4		; <i32*> [#uses=2]
26*9880d681SAndroid Build Coastguard Worker	%bufsize = alloca i32, align 4		; <i32*> [#uses=1]
27*9880d681SAndroid Build Coastguard Worker	%errmask = alloca i32, align 4		; <i32*> [#uses=2]
28*9880d681SAndroid Build Coastguard Worker	%errobj = alloca %struct.PyObject*, align 8		; <%struct.PyObject**> [#uses=2]
29*9880d681SAndroid Build Coastguard Worker	%tmp3.i = call fastcc i32 @_ubyte_convert_to_ctype( %struct.PyObject* %a, i8* %arg1 )		; <i32> [#uses=2]
30*9880d681SAndroid Build Coastguard Worker	%tmp5.i = icmp slt i32 %tmp3.i, 0		; <i1> [#uses=1]
31*9880d681SAndroid Build Coastguard Worker	br i1 %tmp5.i, label %_ubyte_convert2_to_ctypes.exit, label %cond_next.i
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Workercond_next.i:		; preds = %entry
34*9880d681SAndroid Build Coastguard Worker	%tmp11.i = call fastcc i32 @_ubyte_convert_to_ctype( %struct.PyObject* %b, i8* %arg2 )		; <i32> [#uses=2]
35*9880d681SAndroid Build Coastguard Worker	%tmp13.i = icmp slt i32 %tmp11.i, 0		; <i1> [#uses=1]
36*9880d681SAndroid Build Coastguard Worker	%retval.i = select i1 %tmp13.i, i32 %tmp11.i, i32 0		; <i32> [#uses=1]
37*9880d681SAndroid Build Coastguard Worker	switch i32 %retval.i, label %bb35 [
38*9880d681SAndroid Build Coastguard Worker		 i32 -2, label %bb17
39*9880d681SAndroid Build Coastguard Worker		 i32 -1, label %bb4
40*9880d681SAndroid Build Coastguard Worker	]
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Worker_ubyte_convert2_to_ctypes.exit:		; preds = %entry
43*9880d681SAndroid Build Coastguard Worker	switch i32 %tmp3.i, label %bb35 [
44*9880d681SAndroid Build Coastguard Worker		 i32 -2, label %bb17
45*9880d681SAndroid Build Coastguard Worker		 i32 -1, label %bb4
46*9880d681SAndroid Build Coastguard Worker	]
47*9880d681SAndroid Build Coastguard Worker
48*9880d681SAndroid Build Coastguard Workerbb4:		; preds = %_ubyte_convert2_to_ctypes.exit, %cond_next.i
49*9880d681SAndroid Build Coastguard Worker	%tmp5 = load i8**, i8*** @PyArray_API, align 8		; <i8**> [#uses=1]
50*9880d681SAndroid Build Coastguard Worker	%tmp6 = getelementptr i8*, i8** %tmp5, i64 2		; <i8**> [#uses=1]
51*9880d681SAndroid Build Coastguard Worker	%tmp7 = load i8*, i8** %tmp6		; <i8*> [#uses=1]
52*9880d681SAndroid Build Coastguard Worker	%tmp78 = bitcast i8* %tmp7 to %struct._typeobject*		; <%struct._typeobject*> [#uses=1]
53*9880d681SAndroid Build Coastguard Worker	%tmp9 = getelementptr %struct._typeobject, %struct._typeobject* %tmp78, i32 0, i32 12		; <%struct.PyNumberMethods**> [#uses=1]
54*9880d681SAndroid Build Coastguard Worker	%tmp10 = load %struct.PyNumberMethods*, %struct.PyNumberMethods** %tmp9		; <%struct.PyNumberMethods*> [#uses=1]
55*9880d681SAndroid Build Coastguard Worker	%tmp11 = getelementptr %struct.PyNumberMethods, %struct.PyNumberMethods* %tmp10, i32 0, i32 5		; <%struct.PyObject* (%struct.PyObject*, %struct.PyObject*)**> [#uses=1]
56*9880d681SAndroid Build Coastguard Worker	%tmp12 = load %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)** %tmp11		; <%struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*> [#uses=1]
57*9880d681SAndroid Build Coastguard Worker	%tmp15 = call %struct.PyObject* %tmp12( %struct.PyObject* %a, %struct.PyObject* %b )		; <%struct.PyObject*> [#uses=1]
58*9880d681SAndroid Build Coastguard Worker	ret %struct.PyObject* %tmp15
59*9880d681SAndroid Build Coastguard Worker
60*9880d681SAndroid Build Coastguard Workerbb17:		; preds = %_ubyte_convert2_to_ctypes.exit, %cond_next.i
61*9880d681SAndroid Build Coastguard Worker	%tmp18 = call %struct.PyObject* @PyErr_Occurred( )		; <%struct.PyObject*> [#uses=1]
62*9880d681SAndroid Build Coastguard Worker	%tmp19 = icmp eq %struct.PyObject* %tmp18, null		; <i1> [#uses=1]
63*9880d681SAndroid Build Coastguard Worker	br i1 %tmp19, label %cond_next, label %UnifiedReturnBlock
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Workercond_next:		; preds = %bb17
66*9880d681SAndroid Build Coastguard Worker	%tmp22 = load i8**, i8*** @PyArray_API, align 8		; <i8**> [#uses=1]
67*9880d681SAndroid Build Coastguard Worker	%tmp23 = getelementptr i8*, i8** %tmp22, i64 10		; <i8**> [#uses=1]
68*9880d681SAndroid Build Coastguard Worker	%tmp24 = load i8*, i8** %tmp23		; <i8*> [#uses=1]
69*9880d681SAndroid Build Coastguard Worker	%tmp2425 = bitcast i8* %tmp24 to %struct._typeobject*		; <%struct._typeobject*> [#uses=1]
70*9880d681SAndroid Build Coastguard Worker	%tmp26 = getelementptr %struct._typeobject, %struct._typeobject* %tmp2425, i32 0, i32 12		; <%struct.PyNumberMethods**> [#uses=1]
71*9880d681SAndroid Build Coastguard Worker	%tmp27 = load %struct.PyNumberMethods*, %struct.PyNumberMethods** %tmp26		; <%struct.PyNumberMethods*> [#uses=1]
72*9880d681SAndroid Build Coastguard Worker	%tmp28 = getelementptr %struct.PyNumberMethods, %struct.PyNumberMethods* %tmp27, i32 0, i32 5		; <%struct.PyObject* (%struct.PyObject*, %struct.PyObject*)**> [#uses=1]
73*9880d681SAndroid Build Coastguard Worker	%tmp29 = load %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*, %struct.PyObject* (%struct.PyObject*, %struct.PyObject*)** %tmp28		; <%struct.PyObject* (%struct.PyObject*, %struct.PyObject*)*> [#uses=1]
74*9880d681SAndroid Build Coastguard Worker	%tmp32 = call %struct.PyObject* %tmp29( %struct.PyObject* %a, %struct.PyObject* %b )		; <%struct.PyObject*> [#uses=1]
75*9880d681SAndroid Build Coastguard Worker	ret %struct.PyObject* %tmp32
76*9880d681SAndroid Build Coastguard Worker
77*9880d681SAndroid Build Coastguard Workerbb35:		; preds = %_ubyte_convert2_to_ctypes.exit, %cond_next.i
78*9880d681SAndroid Build Coastguard Worker	%tmp36 = load i8**, i8*** @PyUFunc_API, align 8		; <i8**> [#uses=1]
79*9880d681SAndroid Build Coastguard Worker	%tmp37 = getelementptr i8*, i8** %tmp36, i64 27		; <i8**> [#uses=1]
80*9880d681SAndroid Build Coastguard Worker	%tmp38 = load i8*, i8** %tmp37		; <i8*> [#uses=1]
81*9880d681SAndroid Build Coastguard Worker	%tmp3839 = bitcast i8* %tmp38 to void ()*		; <void ()*> [#uses=1]
82*9880d681SAndroid Build Coastguard Worker	call void %tmp3839( )
83*9880d681SAndroid Build Coastguard Worker	%tmp40 = load i8, i8* %arg2, align 1		; <i8> [#uses=4]
84*9880d681SAndroid Build Coastguard Worker	%tmp1.i = icmp eq i8 %tmp40, 0		; <i1> [#uses=2]
85*9880d681SAndroid Build Coastguard Worker	br i1 %tmp1.i, label %cond_true.i, label %cond_false.i
86*9880d681SAndroid Build Coastguard Worker
87*9880d681SAndroid Build Coastguard Workercond_true.i:		; preds = %bb35
88*9880d681SAndroid Build Coastguard Worker	%tmp3.i196 = call i32 @feraiseexcept( i32 4 )		; <i32> [#uses=0]
89*9880d681SAndroid Build Coastguard Worker	%tmp46207 = load i8, i8* %arg2, align 1		; <i8> [#uses=3]
90*9880d681SAndroid Build Coastguard Worker	%tmp48208 = load i8, i8* %arg1, align 1		; <i8> [#uses=2]
91*9880d681SAndroid Build Coastguard Worker	%tmp1.i197210 = icmp eq i8 %tmp48208, 0		; <i1> [#uses=1]
92*9880d681SAndroid Build Coastguard Worker	%tmp4.i212 = icmp eq i8 %tmp46207, 0		; <i1> [#uses=1]
93*9880d681SAndroid Build Coastguard Worker	%tmp7.i198213 = or i1 %tmp1.i197210, %tmp4.i212		; <i1> [#uses=1]
94*9880d681SAndroid Build Coastguard Worker	br i1 %tmp7.i198213, label %cond_true.i200, label %cond_next17.i
95*9880d681SAndroid Build Coastguard Worker
96*9880d681SAndroid Build Coastguard Workercond_false.i:		; preds = %bb35
97*9880d681SAndroid Build Coastguard Worker	%tmp42 = load i8, i8* %arg1, align 1		; <i8> [#uses=3]
98*9880d681SAndroid Build Coastguard Worker	%tmp7.i = udiv i8 %tmp42, %tmp40		; <i8> [#uses=2]
99*9880d681SAndroid Build Coastguard Worker	%tmp1.i197 = icmp eq i8 %tmp42, 0		; <i1> [#uses=1]
100*9880d681SAndroid Build Coastguard Worker	%tmp7.i198 = or i1 %tmp1.i197, %tmp1.i		; <i1> [#uses=1]
101*9880d681SAndroid Build Coastguard Worker	br i1 %tmp7.i198, label %cond_true.i200, label %cond_next17.i
102*9880d681SAndroid Build Coastguard Worker
103*9880d681SAndroid Build Coastguard Workercond_true.i200:		; preds = %cond_false.i, %cond_true.i
104*9880d681SAndroid Build Coastguard Worker	%out.0 = phi i8 [ 0, %cond_true.i ], [ %tmp7.i, %cond_false.i ]		; <i8> [#uses=2]
105*9880d681SAndroid Build Coastguard Worker	%tmp46202.0 = phi i8 [ %tmp46207, %cond_true.i ], [ %tmp40, %cond_false.i ]		; <i8> [#uses=1]
106*9880d681SAndroid Build Coastguard Worker	%tmp11.i199 = icmp eq i8 %tmp46202.0, 0		; <i1> [#uses=1]
107*9880d681SAndroid Build Coastguard Worker	br i1 %tmp11.i199, label %cond_true14.i, label %ubyte_ctype_remainder.exit
108*9880d681SAndroid Build Coastguard Worker
109*9880d681SAndroid Build Coastguard Workercond_true14.i:		; preds = %cond_true.i200
110*9880d681SAndroid Build Coastguard Worker	%tmp15.i = call i32 @feraiseexcept( i32 4 )		; <i32> [#uses=0]
111*9880d681SAndroid Build Coastguard Worker	br label %ubyte_ctype_remainder.exit
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Workercond_next17.i:		; preds = %cond_false.i, %cond_true.i
114*9880d681SAndroid Build Coastguard Worker	%out.1 = phi i8 [ 0, %cond_true.i ], [ %tmp7.i, %cond_false.i ]		; <i8> [#uses=1]
115*9880d681SAndroid Build Coastguard Worker	%tmp46202.1 = phi i8 [ %tmp46207, %cond_true.i ], [ %tmp40, %cond_false.i ]		; <i8> [#uses=1]
116*9880d681SAndroid Build Coastguard Worker	%tmp48205.1 = phi i8 [ %tmp48208, %cond_true.i ], [ %tmp42, %cond_false.i ]		; <i8> [#uses=1]
117*9880d681SAndroid Build Coastguard Worker	%tmp20.i = urem i8 %tmp48205.1, %tmp46202.1		; <i8> [#uses=1]
118*9880d681SAndroid Build Coastguard Worker	br label %ubyte_ctype_remainder.exit
119*9880d681SAndroid Build Coastguard Worker
120*9880d681SAndroid Build Coastguard Workerubyte_ctype_remainder.exit:		; preds = %cond_next17.i, %cond_true14.i, %cond_true.i200
121*9880d681SAndroid Build Coastguard Worker	%out2.0 = phi i8 [ %tmp20.i, %cond_next17.i ], [ 0, %cond_true14.i ], [ 0, %cond_true.i200 ]		; <i8> [#uses=1]
122*9880d681SAndroid Build Coastguard Worker	%out.2 = phi i8 [ %out.1, %cond_next17.i ], [ %out.0, %cond_true14.i ], [ %out.0, %cond_true.i200 ]		; <i8> [#uses=1]
123*9880d681SAndroid Build Coastguard Worker	%tmp52 = load i8**, i8*** @PyUFunc_API, align 8		; <i8**> [#uses=1]
124*9880d681SAndroid Build Coastguard Worker	%tmp53 = getelementptr i8*, i8** %tmp52, i64 28		; <i8**> [#uses=1]
125*9880d681SAndroid Build Coastguard Worker	%tmp54 = load i8*, i8** %tmp53		; <i8*> [#uses=1]
126*9880d681SAndroid Build Coastguard Worker	%tmp5455 = bitcast i8* %tmp54 to i32 ()*		; <i32 ()*> [#uses=1]
127*9880d681SAndroid Build Coastguard Worker	%tmp56 = call i32 %tmp5455( )		; <i32> [#uses=2]
128*9880d681SAndroid Build Coastguard Worker	%tmp58 = icmp eq i32 %tmp56, 0		; <i1> [#uses=1]
129*9880d681SAndroid Build Coastguard Worker	br i1 %tmp58, label %cond_next89, label %cond_true61
130*9880d681SAndroid Build Coastguard Worker
131*9880d681SAndroid Build Coastguard Workercond_true61:		; preds = %ubyte_ctype_remainder.exit
132*9880d681SAndroid Build Coastguard Worker	%tmp62 = load i8**, i8*** @PyUFunc_API, align 8		; <i8**> [#uses=1]
133*9880d681SAndroid Build Coastguard Worker	%tmp63 = getelementptr i8*, i8** %tmp62, i64 25		; <i8**> [#uses=1]
134*9880d681SAndroid Build Coastguard Worker	%tmp64 = load i8*, i8** %tmp63		; <i8*> [#uses=1]
135*9880d681SAndroid Build Coastguard Worker	%tmp6465 = bitcast i8* %tmp64 to i32 (i8*, i32*, i32*, %struct.PyObject**)*		; <i32 (i8*, i32*, i32*, %struct.PyObject**)*> [#uses=1]
136*9880d681SAndroid Build Coastguard Worker	%tmp67 = call i32 %tmp6465( i8* getelementptr ([14 x i8], [14 x i8]* @.str5, i32 0, i64 0), i32* %bufsize, i32* %errmask, %struct.PyObject** %errobj )		; <i32> [#uses=1]
137*9880d681SAndroid Build Coastguard Worker	%tmp68 = icmp slt i32 %tmp67, 0		; <i1> [#uses=1]
138*9880d681SAndroid Build Coastguard Worker	br i1 %tmp68, label %UnifiedReturnBlock, label %cond_next73
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard Workercond_next73:		; preds = %cond_true61
141*9880d681SAndroid Build Coastguard Worker	store i32 1, i32* %first, align 4
142*9880d681SAndroid Build Coastguard Worker	%tmp74 = load i8**, i8*** @PyUFunc_API, align 8		; <i8**> [#uses=1]
143*9880d681SAndroid Build Coastguard Worker	%tmp75 = getelementptr i8*, i8** %tmp74, i64 29		; <i8**> [#uses=1]
144*9880d681SAndroid Build Coastguard Worker	%tmp76 = load i8*, i8** %tmp75		; <i8*> [#uses=1]
145*9880d681SAndroid Build Coastguard Worker	%tmp7677 = bitcast i8* %tmp76 to i32 (i32, %struct.PyObject*, i32, i32*)*		; <i32 (i32, %struct.PyObject*, i32, i32*)*> [#uses=1]
146*9880d681SAndroid Build Coastguard Worker	%tmp79 = load %struct.PyObject*, %struct.PyObject** %errobj, align 8		; <%struct.PyObject*> [#uses=1]
147*9880d681SAndroid Build Coastguard Worker	%tmp80 = load i32, i32* %errmask, align 4		; <i32> [#uses=1]
148*9880d681SAndroid Build Coastguard Worker	%tmp82 = call i32 %tmp7677( i32 %tmp80, %struct.PyObject* %tmp79, i32 %tmp56, i32* %first )		; <i32> [#uses=1]
149*9880d681SAndroid Build Coastguard Worker	%tmp83 = icmp eq i32 %tmp82, 0		; <i1> [#uses=1]
150*9880d681SAndroid Build Coastguard Worker	br i1 %tmp83, label %cond_next89, label %UnifiedReturnBlock
151*9880d681SAndroid Build Coastguard Worker
152*9880d681SAndroid Build Coastguard Workercond_next89:		; preds = %cond_next73, %ubyte_ctype_remainder.exit
153*9880d681SAndroid Build Coastguard Worker	%tmp90 = call %struct.PyObject* @PyTuple_New( i64 2 )		; <%struct.PyObject*> [#uses=9]
154*9880d681SAndroid Build Coastguard Worker	%tmp92 = icmp eq %struct.PyObject* %tmp90, null		; <i1> [#uses=1]
155*9880d681SAndroid Build Coastguard Worker	br i1 %tmp92, label %UnifiedReturnBlock, label %cond_next97
156*9880d681SAndroid Build Coastguard Worker
157*9880d681SAndroid Build Coastguard Workercond_next97:		; preds = %cond_next89
158*9880d681SAndroid Build Coastguard Worker	%tmp98 = load i8**, i8*** @PyArray_API, align 8		; <i8**> [#uses=1]
159*9880d681SAndroid Build Coastguard Worker	%tmp99 = getelementptr i8*, i8** %tmp98, i64 25		; <i8**> [#uses=1]
160*9880d681SAndroid Build Coastguard Worker	%tmp100 = load i8*, i8** %tmp99		; <i8*> [#uses=1]
161*9880d681SAndroid Build Coastguard Worker	%tmp100101 = bitcast i8* %tmp100 to %struct._typeobject*		; <%struct._typeobject*> [#uses=2]
162*9880d681SAndroid Build Coastguard Worker	%tmp102 = getelementptr %struct._typeobject, %struct._typeobject* %tmp100101, i32 0, i32 38		; <%struct.PyObject* (%struct._typeobject*, i64)**> [#uses=1]
163*9880d681SAndroid Build Coastguard Worker	%tmp103 = load %struct.PyObject* (%struct._typeobject*, i64)*, %struct.PyObject* (%struct._typeobject*, i64)** %tmp102		; <%struct.PyObject* (%struct._typeobject*, i64)*> [#uses=1]
164*9880d681SAndroid Build Coastguard Worker	%tmp108 = call %struct.PyObject* %tmp103( %struct._typeobject* %tmp100101, i64 0 )		; <%struct.PyObject*> [#uses=3]
165*9880d681SAndroid Build Coastguard Worker	%tmp110 = icmp eq %struct.PyObject* %tmp108, null		; <i1> [#uses=1]
166*9880d681SAndroid Build Coastguard Worker	br i1 %tmp110, label %cond_true113, label %cond_next135
167*9880d681SAndroid Build Coastguard Worker
168*9880d681SAndroid Build Coastguard Workercond_true113:		; preds = %cond_next97
169*9880d681SAndroid Build Coastguard Worker	%tmp115 = getelementptr %struct.PyObject, %struct.PyObject* %tmp90, i32 0, i32 0		; <i64*> [#uses=2]
170*9880d681SAndroid Build Coastguard Worker	%tmp116 = load i64, i64* %tmp115		; <i64> [#uses=1]
171*9880d681SAndroid Build Coastguard Worker	%tmp117 = add i64 %tmp116, -1		; <i64> [#uses=2]
172*9880d681SAndroid Build Coastguard Worker	store i64 %tmp117, i64* %tmp115
173*9880d681SAndroid Build Coastguard Worker	%tmp123 = icmp eq i64 %tmp117, 0		; <i1> [#uses=1]
174*9880d681SAndroid Build Coastguard Worker	br i1 %tmp123, label %cond_true126, label %UnifiedReturnBlock
175*9880d681SAndroid Build Coastguard Worker
176*9880d681SAndroid Build Coastguard Workercond_true126:		; preds = %cond_true113
177*9880d681SAndroid Build Coastguard Worker	%tmp128 = getelementptr %struct.PyObject, %struct.PyObject* %tmp90, i32 0, i32 1		; <%struct._typeobject**> [#uses=1]
178*9880d681SAndroid Build Coastguard Worker	%tmp129 = load %struct._typeobject*, %struct._typeobject** %tmp128		; <%struct._typeobject*> [#uses=1]
179*9880d681SAndroid Build Coastguard Worker	%tmp130 = getelementptr %struct._typeobject, %struct._typeobject* %tmp129, i32 0, i32 6		; <void (%struct.PyObject*)**> [#uses=1]
180*9880d681SAndroid Build Coastguard Worker	%tmp131 = load void (%struct.PyObject*)*, void (%struct.PyObject*)** %tmp130		; <void (%struct.PyObject*)*> [#uses=1]
181*9880d681SAndroid Build Coastguard Worker	call void %tmp131( %struct.PyObject* %tmp90 )
182*9880d681SAndroid Build Coastguard Worker	ret %struct.PyObject* null
183*9880d681SAndroid Build Coastguard Worker
184*9880d681SAndroid Build Coastguard Workercond_next135:		; preds = %cond_next97
185*9880d681SAndroid Build Coastguard Worker	%tmp136137 = bitcast %struct.PyObject* %tmp108 to %struct.PyBoolScalarObject*		; <%struct.PyBoolScalarObject*> [#uses=1]
186*9880d681SAndroid Build Coastguard Worker	%tmp139 = getelementptr %struct.PyBoolScalarObject, %struct.PyBoolScalarObject* %tmp136137, i32 0, i32 2		; <i8*> [#uses=1]
187*9880d681SAndroid Build Coastguard Worker	store i8 %out.2, i8* %tmp139
188*9880d681SAndroid Build Coastguard Worker	%tmp140141 = bitcast %struct.PyObject* %tmp90 to %struct.PyTupleObject*		; <%struct.PyTupleObject*> [#uses=2]
189*9880d681SAndroid Build Coastguard Worker	%tmp143 = getelementptr %struct.PyTupleObject, %struct.PyTupleObject* %tmp140141, i32 0, i32 3, i64 0		; <%struct.PyObject**> [#uses=1]
190*9880d681SAndroid Build Coastguard Worker	store %struct.PyObject* %tmp108, %struct.PyObject** %tmp143
191*9880d681SAndroid Build Coastguard Worker	%tmp145 = load i8**, i8*** @PyArray_API, align 8		; <i8**> [#uses=1]
192*9880d681SAndroid Build Coastguard Worker	%tmp146 = getelementptr i8*, i8** %tmp145, i64 25		; <i8**> [#uses=1]
193*9880d681SAndroid Build Coastguard Worker	%tmp147 = load i8*, i8** %tmp146		; <i8*> [#uses=1]
194*9880d681SAndroid Build Coastguard Worker	%tmp147148 = bitcast i8* %tmp147 to %struct._typeobject*		; <%struct._typeobject*> [#uses=2]
195*9880d681SAndroid Build Coastguard Worker	%tmp149 = getelementptr %struct._typeobject, %struct._typeobject* %tmp147148, i32 0, i32 38		; <%struct.PyObject* (%struct._typeobject*, i64)**> [#uses=1]
196*9880d681SAndroid Build Coastguard Worker	%tmp150 = load %struct.PyObject* (%struct._typeobject*, i64)*, %struct.PyObject* (%struct._typeobject*, i64)** %tmp149		; <%struct.PyObject* (%struct._typeobject*, i64)*> [#uses=1]
197*9880d681SAndroid Build Coastguard Worker	%tmp155 = call %struct.PyObject* %tmp150( %struct._typeobject* %tmp147148, i64 0 )		; <%struct.PyObject*> [#uses=3]
198*9880d681SAndroid Build Coastguard Worker	%tmp157 = icmp eq %struct.PyObject* %tmp155, null		; <i1> [#uses=1]
199*9880d681SAndroid Build Coastguard Worker	br i1 %tmp157, label %cond_true160, label %cond_next182
200*9880d681SAndroid Build Coastguard Worker
201*9880d681SAndroid Build Coastguard Workercond_true160:		; preds = %cond_next135
202*9880d681SAndroid Build Coastguard Worker	%tmp162 = getelementptr %struct.PyObject, %struct.PyObject* %tmp90, i32 0, i32 0		; <i64*> [#uses=2]
203*9880d681SAndroid Build Coastguard Worker	%tmp163 = load i64, i64* %tmp162		; <i64> [#uses=1]
204*9880d681SAndroid Build Coastguard Worker	%tmp164 = add i64 %tmp163, -1		; <i64> [#uses=2]
205*9880d681SAndroid Build Coastguard Worker	store i64 %tmp164, i64* %tmp162
206*9880d681SAndroid Build Coastguard Worker	%tmp170 = icmp eq i64 %tmp164, 0		; <i1> [#uses=1]
207*9880d681SAndroid Build Coastguard Worker	br i1 %tmp170, label %cond_true173, label %UnifiedReturnBlock
208*9880d681SAndroid Build Coastguard Worker
209*9880d681SAndroid Build Coastguard Workercond_true173:		; preds = %cond_true160
210*9880d681SAndroid Build Coastguard Worker	%tmp175 = getelementptr %struct.PyObject, %struct.PyObject* %tmp90, i32 0, i32 1		; <%struct._typeobject**> [#uses=1]
211*9880d681SAndroid Build Coastguard Worker	%tmp176 = load %struct._typeobject*, %struct._typeobject** %tmp175		; <%struct._typeobject*> [#uses=1]
212*9880d681SAndroid Build Coastguard Worker	%tmp177 = getelementptr %struct._typeobject, %struct._typeobject* %tmp176, i32 0, i32 6		; <void (%struct.PyObject*)**> [#uses=1]
213*9880d681SAndroid Build Coastguard Worker	%tmp178 = load void (%struct.PyObject*)*, void (%struct.PyObject*)** %tmp177		; <void (%struct.PyObject*)*> [#uses=1]
214*9880d681SAndroid Build Coastguard Worker	call void %tmp178( %struct.PyObject* %tmp90 )
215*9880d681SAndroid Build Coastguard Worker	ret %struct.PyObject* null
216*9880d681SAndroid Build Coastguard Worker
217*9880d681SAndroid Build Coastguard Workercond_next182:		; preds = %cond_next135
218*9880d681SAndroid Build Coastguard Worker	%tmp183184 = bitcast %struct.PyObject* %tmp155 to %struct.PyBoolScalarObject*		; <%struct.PyBoolScalarObject*> [#uses=1]
219*9880d681SAndroid Build Coastguard Worker	%tmp186 = getelementptr %struct.PyBoolScalarObject, %struct.PyBoolScalarObject* %tmp183184, i32 0, i32 2		; <i8*> [#uses=1]
220*9880d681SAndroid Build Coastguard Worker	store i8 %out2.0, i8* %tmp186
221*9880d681SAndroid Build Coastguard Worker	%tmp190 = getelementptr %struct.PyTupleObject, %struct.PyTupleObject* %tmp140141, i32 0, i32 3, i64 1		; <%struct.PyObject**> [#uses=1]
222*9880d681SAndroid Build Coastguard Worker	store %struct.PyObject* %tmp155, %struct.PyObject** %tmp190
223*9880d681SAndroid Build Coastguard Worker	ret %struct.PyObject* %tmp90
224*9880d681SAndroid Build Coastguard Worker
225*9880d681SAndroid Build Coastguard WorkerUnifiedReturnBlock:		; preds = %cond_true160, %cond_true113, %cond_next89, %cond_next73, %cond_true61, %bb17
226*9880d681SAndroid Build Coastguard Worker	ret %struct.PyObject* null
227*9880d681SAndroid Build Coastguard Worker}
228*9880d681SAndroid Build Coastguard Worker
229*9880d681SAndroid Build Coastguard Workerdeclare i32 @feraiseexcept(i32)
230*9880d681SAndroid Build Coastguard Worker
231*9880d681SAndroid Build Coastguard Workerdeclare fastcc i32 @_ubyte_convert_to_ctype(%struct.PyObject*, i8*)
232*9880d681SAndroid Build Coastguard Worker
233*9880d681SAndroid Build Coastguard Workerdeclare %struct.PyObject* @PyErr_Occurred()
234*9880d681SAndroid Build Coastguard Worker
235*9880d681SAndroid Build Coastguard Workerdeclare %struct.PyObject* @PyTuple_New(i64)
236