brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.3 KiB · 7bdc4e1 Raw
398 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s3 4	%struct.FILE = type { ptr, i32, i32, i16, i16, %struct.__sbuf, i32, ptr, ptr, ptr, ptr, ptr, %struct.__sbuf, ptr, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, [4 x i8], i64 }5	%struct.PyBoolScalarObject = type { i64, ptr, i8 }6	%struct.PyBufferProcs = type { ptr, ptr, ptr, ptr }7	%struct.PyGetSetDef = type { ptr, ptr, ptr, ptr, ptr }8	%struct.PyMappingMethods = type { ptr, ptr, ptr }9	%struct.PyMemberDef = type opaque10	%struct.PyMethodDef = type { ptr, ptr, i32, ptr }11	%struct.PyNumberMethods = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }12	%struct.PyObject = type { i64, ptr }13	%struct.PySequenceMethods = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }14	%struct.PyTupleObject = type { i64, ptr, i64, [1 x ptr] }15	%struct.__sFILEX = type opaque16	%struct.__sbuf = type { ptr, i32 }17	%struct._typeobject = type { i64, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, ptr, ptr, ptr, ptr, i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }18@PyArray_API = external global ptr		; <ptr> [#uses=4]19@PyUFunc_API = external global ptr		; <ptr> [#uses=4]20@.str5 = external constant [14 x i8]		; <ptr> [#uses=1]21 22define ptr @ubyte_divmod(ptr %a, ptr %b) {23; CHECK-LABEL: ubyte_divmod:24; CHECK:       ## %bb.0: ## %entry25; CHECK-NEXT:    pushq %rbp26; CHECK-NEXT:    .cfi_def_cfa_offset 1627; CHECK-NEXT:    pushq %r1528; CHECK-NEXT:    .cfi_def_cfa_offset 2429; CHECK-NEXT:    pushq %r1430; CHECK-NEXT:    .cfi_def_cfa_offset 3231; CHECK-NEXT:    pushq %r1232; CHECK-NEXT:    .cfi_def_cfa_offset 4033; CHECK-NEXT:    pushq %rbx34; CHECK-NEXT:    .cfi_def_cfa_offset 4835; CHECK-NEXT:    subq $32, %rsp36; CHECK-NEXT:    .cfi_def_cfa_offset 8037; CHECK-NEXT:    .cfi_offset %rbx, -4838; CHECK-NEXT:    .cfi_offset %r12, -4039; CHECK-NEXT:    .cfi_offset %r14, -3240; CHECK-NEXT:    .cfi_offset %r15, -2441; CHECK-NEXT:    .cfi_offset %rbp, -1642; CHECK-NEXT:    movq %rsi, %rbx43; CHECK-NEXT:    movq %rdi, %r1444; CHECK-NEXT:    leaq {{[0-9]+}}(%rsp), %rsi45; CHECK-NEXT:    callq __ubyte_convert_to_ctype46; CHECK-NEXT:    testl %eax, %eax47; CHECK-NEXT:    js LBB0_448; CHECK-NEXT:  ## %bb.1: ## %cond_next.i49; CHECK-NEXT:    leaq {{[0-9]+}}(%rsp), %rsi50; CHECK-NEXT:    movq %rbx, %rdi51; CHECK-NEXT:    callq __ubyte_convert_to_ctype52; CHECK-NEXT:    movl %eax, %ecx53; CHECK-NEXT:    sarl $31, %ecx54; CHECK-NEXT:    andl %eax, %ecx55; CHECK-NEXT:    cmpl $-2, %ecx56; CHECK-NEXT:    je LBB0_857; CHECK-NEXT:  ## %bb.2: ## %cond_next.i58; CHECK-NEXT:    cmpl $-1, %ecx59; CHECK-NEXT:    jne LBB0_660; CHECK-NEXT:  LBB0_3: ## %bb461; CHECK-NEXT:    movq _PyArray_API@GOTPCREL(%rip), %rax62; CHECK-NEXT:    movq (%rax), %rax63; CHECK-NEXT:    movq 16(%rax), %rax64; CHECK-NEXT:    jmp LBB0_1065; CHECK-NEXT:  LBB0_4: ## %_ubyte_convert2_to_ctypes.exit66; CHECK-NEXT:    cmpl $-2, %eax67; CHECK-NEXT:    je LBB0_868; CHECK-NEXT:  ## %bb.5: ## %_ubyte_convert2_to_ctypes.exit69; CHECK-NEXT:    cmpl $-1, %eax70; CHECK-NEXT:    je LBB0_371; CHECK-NEXT:  LBB0_6: ## %bb3572; CHECK-NEXT:    movq _PyUFunc_API@GOTPCREL(%rip), %r1473; CHECK-NEXT:    movq (%r14), %rax74; CHECK-NEXT:    callq *216(%rax)75; CHECK-NEXT:    movzbl {{[0-9]+}}(%rsp), %edx76; CHECK-NEXT:    testb %dl, %dl77; CHECK-NEXT:    je LBB0_1178; CHECK-NEXT:  ## %bb.7: ## %cond_false.i79; CHECK-NEXT:    movzbl {{[0-9]+}}(%rsp), %esi80; CHECK-NEXT:    movzbl %sil, %ecx81; CHECK-NEXT:    movl %ecx, %eax82; CHECK-NEXT:    divb %dl83; CHECK-NEXT:    movl %eax, %r15d84; CHECK-NEXT:    testb %cl, %cl85; CHECK-NEXT:    jne LBB0_1286; CHECK-NEXT:    jmp LBB0_1487; CHECK-NEXT:  LBB0_8: ## %bb1788; CHECK-NEXT:    callq _PyErr_Occurred89; CHECK-NEXT:    testq %rax, %rax90; CHECK-NEXT:    jne LBB0_2791; CHECK-NEXT:  ## %bb.9: ## %cond_next92; CHECK-NEXT:    movq _PyArray_API@GOTPCREL(%rip), %rax93; CHECK-NEXT:    movq (%rax), %rax94; CHECK-NEXT:    movq 80(%rax), %rax95; CHECK-NEXT:  LBB0_10: ## %bb496; CHECK-NEXT:    movq 96(%rax), %rax97; CHECK-NEXT:    movq %r14, %rdi98; CHECK-NEXT:    movq %rbx, %rsi99; CHECK-NEXT:    callq *40(%rax)100; CHECK-NEXT:    jmp LBB0_28101; CHECK-NEXT:  LBB0_11: ## %cond_true.i102; CHECK-NEXT:    movl $4, %edi103; CHECK-NEXT:    callq _feraiseexcept104; CHECK-NEXT:    movzbl {{[0-9]+}}(%rsp), %edx105; CHECK-NEXT:    movzbl {{[0-9]+}}(%rsp), %esi106; CHECK-NEXT:    xorl %r15d, %r15d107; CHECK-NEXT:    testb %sil, %sil108; CHECK-NEXT:    je LBB0_14109; CHECK-NEXT:  LBB0_12: ## %cond_false.i110; CHECK-NEXT:    testb %dl, %dl111; CHECK-NEXT:    je LBB0_14112; CHECK-NEXT:  ## %bb.13: ## %cond_next17.i113; CHECK-NEXT:    movzbl %sil, %eax114; CHECK-NEXT:    divb %dl115; CHECK-NEXT:    movzbl %ah, %ebx116; CHECK-NEXT:    jmp LBB0_18117; CHECK-NEXT:  LBB0_14: ## %cond_true.i200118; CHECK-NEXT:    testb %dl, %dl119; CHECK-NEXT:    jne LBB0_17120; CHECK-NEXT:  ## %bb.16: ## %cond_true14.i121; CHECK-NEXT:    movl $4, %edi122; CHECK-NEXT:    callq _feraiseexcept123; CHECK-NEXT:  LBB0_17: ## %ubyte_ctype_remainder.exit124; CHECK-NEXT:    xorl %ebx, %ebx125; CHECK-NEXT:  LBB0_18: ## %ubyte_ctype_remainder.exit126; CHECK-NEXT:    movq (%r14), %rax127; CHECK-NEXT:    callq *224(%rax)128; CHECK-NEXT:    testl %eax, %eax129; CHECK-NEXT:    je LBB0_21130; CHECK-NEXT:  ## %bb.19: ## %cond_true61131; CHECK-NEXT:    movl %eax, %ebp132; CHECK-NEXT:    movq (%r14), %rax133; CHECK-NEXT:    movq _.str5@GOTPCREL(%rip), %rdi134; CHECK-NEXT:    leaq {{[0-9]+}}(%rsp), %rsi135; CHECK-NEXT:    leaq {{[0-9]+}}(%rsp), %rdx136; CHECK-NEXT:    leaq {{[0-9]+}}(%rsp), %rcx137; CHECK-NEXT:    callq *200(%rax)138; CHECK-NEXT:    testl %eax, %eax139; CHECK-NEXT:    js LBB0_27140; CHECK-NEXT:  ## %bb.20: ## %cond_next73141; CHECK-NEXT:    movl $1, {{[0-9]+}}(%rsp)142; CHECK-NEXT:    movq (%r14), %rax143; CHECK-NEXT:    movq {{[0-9]+}}(%rsp), %rsi144; CHECK-NEXT:    movl {{[0-9]+}}(%rsp), %edi145; CHECK-NEXT:    leaq {{[0-9]+}}(%rsp), %rcx146; CHECK-NEXT:    movl %ebp, %edx147; CHECK-NEXT:    callq *232(%rax)148; CHECK-NEXT:    testl %eax, %eax149; CHECK-NEXT:    jne LBB0_27150; CHECK-NEXT:  LBB0_21: ## %cond_next89151; CHECK-NEXT:    movl $2, %edi152; CHECK-NEXT:    callq _PyTuple_New153; CHECK-NEXT:    testq %rax, %rax154; CHECK-NEXT:    je LBB0_27155; CHECK-NEXT:  ## %bb.22: ## %cond_next97156; CHECK-NEXT:    movq %rax, %r14157; CHECK-NEXT:    movq _PyArray_API@GOTPCREL(%rip), %r12158; CHECK-NEXT:    movq (%r12), %rax159; CHECK-NEXT:    movq 200(%rax), %rdi160; CHECK-NEXT:    xorl %esi, %esi161; CHECK-NEXT:    callq *304(%rdi)162; CHECK-NEXT:    testq %rax, %rax163; CHECK-NEXT:    je LBB0_25164; CHECK-NEXT:  ## %bb.23: ## %cond_next135165; CHECK-NEXT:    movb %r15b, 16(%rax)166; CHECK-NEXT:    movq %rax, 24(%r14)167; CHECK-NEXT:    movq (%r12), %rax168; CHECK-NEXT:    movq 200(%rax), %rdi169; CHECK-NEXT:    xorl %esi, %esi170; CHECK-NEXT:    callq *304(%rdi)171; CHECK-NEXT:    testq %rax, %rax172; CHECK-NEXT:    je LBB0_25173; CHECK-NEXT:  ## %bb.24: ## %cond_next182174; CHECK-NEXT:    movb %bl, 16(%rax)175; CHECK-NEXT:    movq %rax, 32(%r14)176; CHECK-NEXT:    movq %r14, %rax177; CHECK-NEXT:    jmp LBB0_28178; CHECK-NEXT:  LBB0_25: ## %cond_true113179; CHECK-NEXT:    decq (%r14)180; CHECK-NEXT:    jne LBB0_27181; CHECK-NEXT:  ## %bb.26: ## %cond_true126182; CHECK-NEXT:    movq 8(%r14), %rax183; CHECK-NEXT:    movq %r14, %rdi184; CHECK-NEXT:    callq *48(%rax)185; CHECK-NEXT:  LBB0_27: ## %UnifiedReturnBlock186; CHECK-NEXT:    xorl %eax, %eax187; CHECK-NEXT:  LBB0_28: ## %UnifiedReturnBlock188; CHECK-NEXT:    addq $32, %rsp189; CHECK-NEXT:    popq %rbx190; CHECK-NEXT:    popq %r12191; CHECK-NEXT:    popq %r14192; CHECK-NEXT:    popq %r15193; CHECK-NEXT:    popq %rbp194; CHECK-NEXT:    retq195entry:196	%arg1 = alloca i8, align 1		; <ptr> [#uses=3]197	%arg2 = alloca i8, align 1		; <ptr> [#uses=3]198	%first = alloca i32, align 4		; <ptr> [#uses=2]199	%bufsize = alloca i32, align 4		; <ptr> [#uses=1]200	%errmask = alloca i32, align 4		; <ptr> [#uses=2]201	%errobj = alloca ptr, align 8		; <ptr> [#uses=2]202	%tmp3.i = call fastcc i32 @_ubyte_convert_to_ctype( ptr %a, ptr %arg1 )		; <i32> [#uses=2]203	%tmp5.i = icmp slt i32 %tmp3.i, 0		; <i1> [#uses=1]204	br i1 %tmp5.i, label %_ubyte_convert2_to_ctypes.exit, label %cond_next.i205 206cond_next.i:		; preds = %entry207	%tmp11.i = call fastcc i32 @_ubyte_convert_to_ctype( ptr %b, ptr %arg2 )		; <i32> [#uses=2]208	%tmp13.i = icmp slt i32 %tmp11.i, 0		; <i1> [#uses=1]209	%retval.i = select i1 %tmp13.i, i32 %tmp11.i, i32 0		; <i32> [#uses=1]210	switch i32 %retval.i, label %bb35 [211		 i32 -2, label %bb17212		 i32 -1, label %bb4213	]214 215_ubyte_convert2_to_ctypes.exit:		; preds = %entry216	switch i32 %tmp3.i, label %bb35 [217		 i32 -2, label %bb17218		 i32 -1, label %bb4219	]220 221bb4:		; preds = %_ubyte_convert2_to_ctypes.exit, %cond_next.i222	%tmp5 = load ptr, ptr @PyArray_API, align 8		; <ptr> [#uses=1]223	%tmp6 = getelementptr ptr, ptr %tmp5, i64 2		; <ptr> [#uses=1]224	%tmp7 = load ptr, ptr %tmp6		; <ptr> [#uses=1]225	%tmp9 = getelementptr %struct._typeobject, ptr %tmp7, i32 0, i32 12		; <ptr> [#uses=1]226	%tmp10 = load ptr, ptr %tmp9		; <ptr> [#uses=1]227	%tmp11 = getelementptr %struct.PyNumberMethods, ptr %tmp10, i32 0, i32 5		; <ptr> [#uses=1]228	%tmp12 = load ptr, ptr %tmp11		; <ptr> [#uses=1]229	%tmp15 = call ptr %tmp12( ptr %a, ptr %b )		; <ptr> [#uses=1]230	ret ptr %tmp15231 232bb17:		; preds = %_ubyte_convert2_to_ctypes.exit, %cond_next.i233	%tmp18 = call ptr @PyErr_Occurred( )		; <ptr> [#uses=1]234	%tmp19 = icmp eq ptr %tmp18, null		; <i1> [#uses=1]235	br i1 %tmp19, label %cond_next, label %UnifiedReturnBlock236 237cond_next:		; preds = %bb17238	%tmp22 = load ptr, ptr @PyArray_API, align 8		; <ptr> [#uses=1]239	%tmp23 = getelementptr ptr, ptr %tmp22, i64 10		; <ptr> [#uses=1]240	%tmp24 = load ptr, ptr %tmp23		; <ptr> [#uses=1]241	%tmp26 = getelementptr %struct._typeobject, ptr %tmp24, i32 0, i32 12		; <ptr> [#uses=1]242	%tmp27 = load ptr, ptr %tmp26		; <ptr> [#uses=1]243	%tmp28 = getelementptr %struct.PyNumberMethods, ptr %tmp27, i32 0, i32 5		; <ptr> [#uses=1]244	%tmp29 = load ptr, ptr %tmp28		; <ptr> [#uses=1]245	%tmp32 = call ptr %tmp29( ptr %a, ptr %b )		; <ptr> [#uses=1]246	ret ptr %tmp32247 248bb35:		; preds = %_ubyte_convert2_to_ctypes.exit, %cond_next.i249	%tmp36 = load ptr, ptr @PyUFunc_API, align 8		; <ptr> [#uses=1]250	%tmp37 = getelementptr ptr, ptr %tmp36, i64 27		; <ptr> [#uses=1]251	%tmp38 = load ptr, ptr %tmp37		; <ptr> [#uses=1]252	call void %tmp38( )253	%tmp40 = load i8, ptr %arg2, align 1		; <i8> [#uses=4]254	%tmp1.i = icmp eq i8 %tmp40, 0		; <i1> [#uses=2]255	br i1 %tmp1.i, label %cond_true.i, label %cond_false.i256 257cond_true.i:		; preds = %bb35258	%tmp3.i196 = call i32 @feraiseexcept( i32 4 )		; <i32> [#uses=0]259	%tmp46207 = load i8, ptr %arg2, align 1		; <i8> [#uses=3]260	%tmp48208 = load i8, ptr %arg1, align 1		; <i8> [#uses=2]261	%tmp1.i197210 = icmp eq i8 %tmp48208, 0		; <i1> [#uses=1]262	%tmp4.i212 = icmp eq i8 %tmp46207, 0		; <i1> [#uses=1]263	%tmp7.i198213 = or i1 %tmp1.i197210, %tmp4.i212		; <i1> [#uses=1]264	br i1 %tmp7.i198213, label %cond_true.i200, label %cond_next17.i265 266cond_false.i:		; preds = %bb35267	%tmp42 = load i8, ptr %arg1, align 1		; <i8> [#uses=3]268	%tmp7.i = udiv i8 %tmp42, %tmp40		; <i8> [#uses=2]269	%tmp1.i197 = icmp eq i8 %tmp42, 0		; <i1> [#uses=1]270	%tmp7.i198 = or i1 %tmp1.i197, %tmp1.i		; <i1> [#uses=1]271	br i1 %tmp7.i198, label %cond_true.i200, label %cond_next17.i272 273cond_true.i200:		; preds = %cond_false.i, %cond_true.i274	%out.0 = phi i8 [ 0, %cond_true.i ], [ %tmp7.i, %cond_false.i ]		; <i8> [#uses=2]275	%tmp46202.0 = phi i8 [ %tmp46207, %cond_true.i ], [ %tmp40, %cond_false.i ]		; <i8> [#uses=1]276	%tmp11.i199 = icmp eq i8 %tmp46202.0, 0		; <i1> [#uses=1]277	br i1 %tmp11.i199, label %cond_true14.i, label %ubyte_ctype_remainder.exit278 279cond_true14.i:		; preds = %cond_true.i200280	%tmp15.i = call i32 @feraiseexcept( i32 4 )		; <i32> [#uses=0]281	br label %ubyte_ctype_remainder.exit282 283cond_next17.i:		; preds = %cond_false.i, %cond_true.i284	%out.1 = phi i8 [ 0, %cond_true.i ], [ %tmp7.i, %cond_false.i ]		; <i8> [#uses=1]285	%tmp46202.1 = phi i8 [ %tmp46207, %cond_true.i ], [ %tmp40, %cond_false.i ]		; <i8> [#uses=1]286	%tmp48205.1 = phi i8 [ %tmp48208, %cond_true.i ], [ %tmp42, %cond_false.i ]		; <i8> [#uses=1]287	%tmp20.i = urem i8 %tmp48205.1, %tmp46202.1		; <i8> [#uses=1]288	br label %ubyte_ctype_remainder.exit289 290ubyte_ctype_remainder.exit:		; preds = %cond_next17.i, %cond_true14.i, %cond_true.i200291	%out2.0 = phi i8 [ %tmp20.i, %cond_next17.i ], [ 0, %cond_true14.i ], [ 0, %cond_true.i200 ]		; <i8> [#uses=1]292	%out.2 = phi i8 [ %out.1, %cond_next17.i ], [ %out.0, %cond_true14.i ], [ %out.0, %cond_true.i200 ]		; <i8> [#uses=1]293	%tmp52 = load ptr, ptr @PyUFunc_API, align 8		; <ptr> [#uses=1]294	%tmp53 = getelementptr ptr, ptr %tmp52, i64 28		; <ptr> [#uses=1]295	%tmp54 = load ptr, ptr %tmp53		; <ptr> [#uses=1]296	%tmp56 = call i32 %tmp54( )		; <i32> [#uses=2]297	%tmp58 = icmp eq i32 %tmp56, 0		; <i1> [#uses=1]298	br i1 %tmp58, label %cond_next89, label %cond_true61299 300cond_true61:		; preds = %ubyte_ctype_remainder.exit301	%tmp62 = load ptr, ptr @PyUFunc_API, align 8		; <ptr> [#uses=1]302	%tmp63 = getelementptr ptr, ptr %tmp62, i64 25		; <ptr> [#uses=1]303	%tmp64 = load ptr, ptr %tmp63		; <ptr> [#uses=1]304	%tmp67 = call i32 %tmp64( ptr @.str5, ptr %bufsize, ptr %errmask, ptr %errobj )		; <i32> [#uses=1]305	%tmp68 = icmp slt i32 %tmp67, 0		; <i1> [#uses=1]306	br i1 %tmp68, label %UnifiedReturnBlock, label %cond_next73307 308cond_next73:		; preds = %cond_true61309	store i32 1, ptr %first, align 4310	%tmp74 = load ptr, ptr @PyUFunc_API, align 8		; <ptr> [#uses=1]311	%tmp75 = getelementptr ptr, ptr %tmp74, i64 29		; <ptr> [#uses=1]312	%tmp76 = load ptr, ptr %tmp75		; <ptr> [#uses=1]313	%tmp79 = load ptr, ptr %errobj, align 8		; <ptr> [#uses=1]314	%tmp80 = load i32, ptr %errmask, align 4		; <i32> [#uses=1]315	%tmp82 = call i32 %tmp76( i32 %tmp80, ptr %tmp79, i32 %tmp56, ptr %first )		; <i32> [#uses=1]316	%tmp83 = icmp eq i32 %tmp82, 0		; <i1> [#uses=1]317	br i1 %tmp83, label %cond_next89, label %UnifiedReturnBlock318 319cond_next89:		; preds = %cond_next73, %ubyte_ctype_remainder.exit320	%tmp90 = call ptr @PyTuple_New( i64 2 )		; <ptr> [#uses=9]321	%tmp92 = icmp eq ptr %tmp90, null		; <i1> [#uses=1]322	br i1 %tmp92, label %UnifiedReturnBlock, label %cond_next97323 324cond_next97:		; preds = %cond_next89325	%tmp98 = load ptr, ptr @PyArray_API, align 8		; <ptr> [#uses=1]326	%tmp99 = getelementptr ptr, ptr %tmp98, i64 25		; <ptr> [#uses=1]327	%tmp100 = load ptr, ptr %tmp99		; <ptr> [#uses=1]328	%tmp102 = getelementptr %struct._typeobject, ptr %tmp100, i32 0, i32 38		; <ptr> [#uses=1]329	%tmp103 = load ptr, ptr %tmp102		; <ptr> [#uses=1]330	%tmp108 = call ptr %tmp103( ptr %tmp100, i64 0 )		; <ptr> [#uses=3]331	%tmp110 = icmp eq ptr %tmp108, null		; <i1> [#uses=1]332	br i1 %tmp110, label %cond_true113, label %cond_next135333 334cond_true113:		; preds = %cond_next97335	%tmp115 = getelementptr %struct.PyObject, ptr %tmp90, i32 0, i32 0		; <ptr> [#uses=2]336	%tmp116 = load i64, ptr %tmp115		; <i64> [#uses=1]337	%tmp117 = add i64 %tmp116, -1		; <i64> [#uses=2]338	store i64 %tmp117, ptr %tmp115339	%tmp123 = icmp eq i64 %tmp117, 0		; <i1> [#uses=1]340	br i1 %tmp123, label %cond_true126, label %UnifiedReturnBlock341 342cond_true126:		; preds = %cond_true113343	%tmp128 = getelementptr %struct.PyObject, ptr %tmp90, i32 0, i32 1		; <ptr> [#uses=1]344	%tmp129 = load ptr, ptr %tmp128		; <ptr> [#uses=1]345	%tmp130 = getelementptr %struct._typeobject, ptr %tmp129, i32 0, i32 6		; <ptr> [#uses=1]346	%tmp131 = load ptr, ptr %tmp130		; <ptr> [#uses=1]347	call void %tmp131( ptr %tmp90 )348	ret ptr null349 350cond_next135:		; preds = %cond_next97351	%tmp139 = getelementptr %struct.PyBoolScalarObject, ptr %tmp108, i32 0, i32 2		; <ptr> [#uses=1]352	store i8 %out.2, ptr %tmp139353	%tmp143 = getelementptr %struct.PyTupleObject, ptr %tmp90, i32 0, i32 3, i64 0		; <ptr> [#uses=1]354	store ptr %tmp108, ptr %tmp143355	%tmp145 = load ptr, ptr @PyArray_API, align 8		; <ptr> [#uses=1]356	%tmp146 = getelementptr ptr, ptr %tmp145, i64 25		; <ptr> [#uses=1]357	%tmp147 = load ptr, ptr %tmp146		; <ptr> [#uses=1]358	%tmp149 = getelementptr %struct._typeobject, ptr %tmp147, i32 0, i32 38		; <ptr> [#uses=1]359	%tmp150 = load ptr, ptr %tmp149		; <ptr> [#uses=1]360	%tmp155 = call ptr %tmp150( ptr %tmp147, i64 0 )		; <ptr> [#uses=3]361	%tmp157 = icmp eq ptr %tmp155, null		; <i1> [#uses=1]362	br i1 %tmp157, label %cond_true160, label %cond_next182363 364cond_true160:		; preds = %cond_next135365	%tmp162 = getelementptr %struct.PyObject, ptr %tmp90, i32 0, i32 0		; <ptr> [#uses=2]366	%tmp163 = load i64, ptr %tmp162		; <i64> [#uses=1]367	%tmp164 = add i64 %tmp163, -1		; <i64> [#uses=2]368	store i64 %tmp164, ptr %tmp162369	%tmp170 = icmp eq i64 %tmp164, 0		; <i1> [#uses=1]370	br i1 %tmp170, label %cond_true173, label %UnifiedReturnBlock371 372cond_true173:		; preds = %cond_true160373	%tmp175 = getelementptr %struct.PyObject, ptr %tmp90, i32 0, i32 1		; <ptr> [#uses=1]374	%tmp176 = load ptr, ptr %tmp175		; <ptr> [#uses=1]375	%tmp177 = getelementptr %struct._typeobject, ptr %tmp176, i32 0, i32 6		; <ptr> [#uses=1]376	%tmp178 = load ptr, ptr %tmp177		; <ptr> [#uses=1]377	call void %tmp178( ptr %tmp90 )378	ret ptr null379 380cond_next182:		; preds = %cond_next135381	%tmp186 = getelementptr %struct.PyBoolScalarObject, ptr %tmp155, i32 0, i32 2		; <ptr> [#uses=1]382	store i8 %out2.0, ptr %tmp186383	%tmp190 = getelementptr %struct.PyTupleObject, ptr %tmp90, i32 0, i32 3, i64 1		; <ptr> [#uses=1]384	store ptr %tmp155, ptr %tmp190385	ret ptr %tmp90386 387UnifiedReturnBlock:		; preds = %cond_true160, %cond_true113, %cond_next89, %cond_next73, %cond_true61, %bb17388	ret ptr null389}390 391declare i32 @feraiseexcept(i32)392 393declare fastcc i32 @_ubyte_convert_to_ctype(ptr, ptr)394 395declare ptr @PyErr_Occurred()396 397declare ptr @PyTuple_New(i64)398