~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/X86/2007-08-09-IllegalX86-64Asm.ll

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-03-12 11:30:04 UTC
  • mfrom: (0.41.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100312113004-b0fop4bkycszdd0z
Tags: 0.96~rc1+dfsg-0ubuntu1
* New upstream RC - FFE (LP: #537636):
  - Add OfficialDatabaseOnly option to clamav-base.postinst.in
  - Add LocalSocketGroup option to clamav-base.postinst.in
  - Add LocalSocketMode option to clamav-base.postinst.in
  - Add CrossFilesystems option to clamav-base.postinst.in
  - Add ClamukoScannerCount option to clamav-base.postinst.in
  - Add BytecodeSecurity opiton to clamav-base.postinst.in
  - Add DetectionStatsHostID option to clamav-freshclam.postinst.in
  - Add Bytecode option to clamav-freshclam.postinst.in
  - Add MilterSocketGroup option to clamav-milter.postinst.in
  - Add MilterSocketMode option to clamav-milter.postinst.in
  - Add ReportHostname option to clamav-milter.postinst.in
  - Bump libclamav SO version to 6.1.0 in libclamav6.install
  - Drop clamdmon from clamav.examples (no longer shipped by upstream)
  - Drop libclamav.a from libclamav-dev.install (not built by upstream)
  - Update SO version for lintian override for libclamav6
  - Add new Bytecode Testing Tool, usr/bin/clambc, to clamav.install
  - Add build-depends on python and python-setuptools for new test suite
  - Update debian/copyright for the embedded copy of llvm (using the system
    llvm is not currently feasible)

Show diffs side-by-side

added added

removed removed

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