@@ -86,12 +86,10 @@ entry:
86
86
; CHECK-NEXT: %4 = getelementptr inbounds i8*, i8** %interface, i32 6
87
87
; CHECK-NEXT: %5 = load i8*, i8** %4
88
88
; CHECK-NEXT: %has_call = bitcast i8* %5 to i1 (i8*, i8*)*
89
- ; CHECK-NEXT: %call1.ptr3 = alloca double
90
89
; CHECK-NEXT: %call1.ptr = alloca double
91
90
; CHECK-NEXT: %6 = getelementptr inbounds i8*, i8** %interface, i32 3
92
91
; CHECK-NEXT: %7 = load i8*, i8** %6
93
92
; CHECK-NEXT: %insert_choice = bitcast i8* %7 to void (i8*, i8*, double, i8*, i64)*
94
- ; CHECK-NEXT: %call.ptr2 = alloca double
95
93
; CHECK-NEXT: %8 = getelementptr inbounds i8*, i8** %interface, i32 1
96
94
; CHECK-NEXT: %9 = load i8*, i8** %8
97
95
; CHECK-NEXT: %get_choice = bitcast i8* %9 to i64 (i8*, i8*, i8*, i64)*
@@ -119,9 +117,8 @@ entry:
119
117
; CHECK: entry.cntd: ; preds = %condition.call.without.trace, %condition.call.with.trace
120
118
; CHECK-NEXT: %call = phi double [ %from.trace.call, %condition.call.with.trace ], [ %sample.call, %condition.call.without.trace ]
121
119
; CHECK-NEXT: %likelihood.call = call double @normal_logpdf(double 0.000000e+00, double 1.000000e+00, double %call)
122
- ; CHECK-NEXT: store double %call, double* %call.ptr2
123
- ; CHECK-NEXT: %15 = bitcast double* %call.ptr2 to i8**
124
- ; CHECK-NEXT: %16 = load i8*, i8** %15
120
+ ; CHECK-NEXT: %15 = bitcast double %call to i64
121
+ ; CHECK-NEXT: %16 = inttoptr i64 %15 to i8*
125
122
; CHECK-NEXT: call void %insert_choice(i8* %trace, i8* nocapture readonly getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0), double %likelihood.call, i8* %16, i64 8)
126
123
; CHECK-NEXT: %has.choice.call1 = call i1 %has_choice(i8* %observations, i8* nocapture readonly getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
127
124
; CHECK-NEXT: br i1 %has.choice.call1, label %condition.call1.with.trace, label %condition.call1.without.trace
@@ -139,9 +136,8 @@ entry:
139
136
; CHECK: entry.cntd.cntd: ; preds = %condition.call1.without.trace, %condition.call1.with.trace
140
137
; CHECK-NEXT: %call1 = phi double [ %from.trace.call1, %condition.call1.with.trace ], [ %sample.call1, %condition.call1.without.trace ]
141
138
; CHECK-NEXT: %likelihood.call1 = call double @normal_logpdf(double 0.000000e+00, double 1.000000e+00, double %call1)
142
- ; CHECK-NEXT: store double %call1, double* %call1.ptr3
143
- ; CHECK-NEXT: %18 = bitcast double* %call1.ptr3 to i8**
144
- ; CHECK-NEXT: %19 = load i8*, i8** %18
139
+ ; CHECK-NEXT: %18 = bitcast double %call1 to i64
140
+ ; CHECK-NEXT: %19 = inttoptr i64 %18 to i8*
145
141
; CHECK-NEXT: call void %insert_choice(i8* %trace, i8* nocapture readonly getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0), double %likelihood.call1, i8* %19, i64 8)
146
142
; CHECK-NEXT: %has.call.call2 = call i1 %has_call(i8* %observations, i8* nocapture readonly getelementptr inbounds ([21 x i8], [21 x i8]* @0, i32 0, i32 0))
147
143
; CHECK-NEXT: br i1 %has.call.call2, label %condition.call2.with.trace, label %condition.call2.without.trace
@@ -156,9 +152,9 @@ entry:
156
152
; CHECK-NEXT: br label %entry.cntd.cntd.cntd
157
153
158
154
; CHECK: entry.cntd.cntd.cntd: ; preds = %condition.call2.without.trace, %condition.call2.with.trace
159
- ; CHECK-NEXT: %call24 = phi { double, i8* } [ %condition.calculate_loss, %condition.call2.with.trace ], [ %trace.calculate_loss, %condition.call2.without.trace ]
160
- ; CHECK-NEXT: %call2 = extractvalue { double, i8* } %call24 , 0
161
- ; CHECK-NEXT: %newtrace.calculate_loss = extractvalue { double, i8* } %call24 , 1
155
+ ; CHECK-NEXT: %call22 = phi { double, i8* } [ %condition.calculate_loss, %condition.call2.with.trace ], [ %trace.calculate_loss, %condition.call2.without.trace ]
156
+ ; CHECK-NEXT: %call2 = extractvalue { double, i8* } %call22 , 0
157
+ ; CHECK-NEXT: %newtrace.calculate_loss = extractvalue { double, i8* } %call22 , 1
162
158
; CHECK-NEXT: call void %insert_call(i8* %trace, i8* nocapture readonly getelementptr inbounds ([21 x i8], [21 x i8]* @0, i32 0, i32 0), i8* %newtrace.calculate_loss)
163
159
; CHECK-NEXT: %mrv = insertvalue { double, i8* } {{(undef|poison)}}, double %call2, 0
164
160
; CHECK-NEXT: %mrv1 = insertvalue { double, i8* } %mrv, i8* %trace, 1
@@ -171,7 +167,6 @@ entry:
171
167
; CHECK-NEXT: %0 = getelementptr inbounds i8*, i8** %interface, i32 3
172
168
; CHECK-NEXT: %1 = load i8*, i8** %0
173
169
; CHECK-NEXT: %insert_choice = bitcast i8* %1 to void (i8*, i8*, double, i8*, i64)*
174
- ; CHECK-NEXT: %call.ptr2 = alloca double
175
170
; CHECK-NEXT: %2 = getelementptr inbounds i8*, i8** %interface, i32 1
176
171
; CHECK-NEXT: %3 = load i8*, i8** %2
177
172
; CHECK-NEXT: %get_choice = bitcast i8* %3 to i64 (i8*, i8*, i8*, i64)*
@@ -219,9 +214,8 @@ entry:
219
214
; CHECK: for.body.cntd: ; preds = %condition.call.without.trace, %condition.call.with.trace
220
215
; CHECK-NEXT: %call = phi double [ %from.trace.call, %condition.call.with.trace ], [ %sample.call, %condition.call.without.trace ]
221
216
; CHECK-NEXT: %likelihood.call = call double @normal_logpdf(double %9, double 1.000000e+00, double %call)
222
- ; CHECK-NEXT: store double %call, double* %call.ptr2
223
- ; CHECK-NEXT: %11 = bitcast double* %call.ptr2 to i8**
224
- ; CHECK-NEXT: %12 = load i8*, i8** %11
217
+ ; CHECK-NEXT: %11 = bitcast double %call to i64
218
+ ; CHECK-NEXT: %12 = inttoptr i64 %11 to i8*
225
219
; CHECK-NEXT: call void %insert_choice(i8* %trace, i8* nocapture readonly getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0), double %likelihood.call, i8* %12, i64 8)
226
220
; CHECK-NEXT: %arrayidx3 = getelementptr inbounds double, double* %data, i64 %indvars.iv
227
221
; CHECK-NEXT: %13 = load double, double* %arrayidx3
0 commit comments