Skip to content

Commit 32206dd

Browse files
tgymnichwsmoses
authored andcommitted
fix wrong tests
1 parent 5dac0d3 commit 32206dd

File tree

2 files changed

+33
-36
lines changed

2 files changed

+33
-36
lines changed

enzyme/test/Enzyme/ForwardMode/global.ll

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
;
1212
; __attribute__((noinline))
1313
; double derivative(double x) {
14-
; return __builtin_autodiff(mulglobal, x);
14+
; return __builtin_fwddiff(mulglobal, x, 1.0);
1515
; }
1616
;
1717
; void main(int argc, char** argv) {
@@ -38,12 +38,12 @@ entry:
3838
; Function Attrs: noinline nounwind uwtable
3939
define dso_local double @derivative(double %x) local_unnamed_addr #1 {
4040
entry:
41-
%0 = tail call double (double (double)*, ...) @__enzyme_autodiff(double (double)* nonnull @mulglobal, double %x)
41+
%0 = tail call double (double (double)*, ...) @__enzyme_fwddiff(double (double)* nonnull @mulglobal, double %x, double 1.0)
4242
ret double %0
4343
}
4444

4545
; Function Attrs: nounwind
46-
declare double @__enzyme_autodiff(double (double)*, ...) #2
46+
declare double @__enzyme_fwddiff(double (double)*, ...) #2
4747

4848
; Function Attrs: nounwind uwtable
4949
define dso_local void @main(i32 %argc, i8** nocapture readonly %argv) local_unnamed_addr #3 {
@@ -82,14 +82,13 @@ attributes #4 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disa
8282
!7 = !{!"any pointer", !4, i64 0}
8383
!8 = !{double* @dglobal}
8484

85-
; CHECK: define internal {{(dso_local )?}}{ double } @diffemulglobal(double %x, double %[[differet:.+]])
85+
; CHECK: define internal {{(dso_local )?}}{ double } @diffemulglobal(double %x, double %"x'")
8686
; CHECK-NEXT: entry:
8787
; CHECK-NEXT: %0 = load double, double* @global, align 8, !tbaa !3
88-
; CHECK-NEXT: %m0diffe = fmul fast double %differeturn, %x
89-
; CHECK-NEXT: %m1diffex = fmul fast double %differeturn, %0
9088
; CHECK-NEXT: %1 = load double, double* @dglobal
91-
; CHECK-NEXT: %2 = fadd fast double %1, %m0diffe
92-
; CHECK-NEXT: store double %2, double* @dglobal
93-
; CHECK-NEXT: %3 = insertvalue { double } undef, double %m1diffex, 0
94-
; CHECK-NEXT: ret { double } %3
89+
; CHECK-NEXT: %2 = fmul fast double %1, %x
90+
; CHECK-NEXT: %3 = fmul fast double %"x'", %0
91+
; CHECK-NEXT: %4 = fadd fast double %2, %3
92+
; CHECK-NEXT: %5 = insertvalue { double } undef, double %4, 0
93+
; CHECK-NEXT: ret { double } %5
9594
; CHECK-NEXT: }

enzyme/test/Enzyme/ForwardMode/sumsquare.ll

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,40 +21,38 @@ for.body: ; preds = %entry, %for.body
2121
}
2222

2323
; Function Attrs: nounwind uwtable
24-
define dso_local void @dsumsquare(double* %x, double* %xp, i64 %n) local_unnamed_addr #1 {
24+
define dso_local double @dsumsquare(double* %x, double* %xp, i64 %n) local_unnamed_addr #1 {
2525
entry:
26-
%0 = tail call double (double (double*, i64)*, ...) @__enzyme_autodiff(double (double*, i64)* nonnull @sumsquare, double* %x, double* %xp, i64 %n)
27-
ret void
26+
%0 = tail call double (double (double*, i64)*, ...) @__enzyme_fwddiff(double (double*, i64)* nonnull @sumsquare, double* %x, double* %xp, i64 %n)
27+
ret double %0
2828
}
2929

3030
; Function Attrs: nounwind
31-
declare double @__enzyme_autodiff(double (double*, i64)*, ...) #2
31+
declare double @__enzyme_fwddiff(double (double*, i64)*, ...) #2
3232

3333
attributes #0 = { norecurse nounwind readonly uwtable }
3434
attributes #1 = { nounwind uwtable }
3535
attributes #2 = { nounwind }
3636

3737

38-
; CHECK: define dso_local void @dsumsquare(double* %x, double* %xp, i64 %n)
38+
; CHECK: define {{(dso_local )?}}double @dsumsquare(double* %x, double* %xp, i64 %n)
3939
; CHECK-NEXT: entry:
40-
; CHECK-NEXT: br label %invertfor.body.i
41-
42-
; CHECK: invertfor.body.i:
43-
; CHECK-NEXT: %[[antiiv:.+]] = phi i64 [ %n, %entry ], [ %[[antiivnext:.+]], %incinvertfor.body.i ]
44-
; CHECK-NEXT: %[[ptr:.+]] = getelementptr inbounds double, double* %x, i64 %[[antiiv]]
45-
; CHECK-NEXT: %[[prev:.+]] = load double, double* %[[ptr]]
46-
; CHECK-NEXT: %[[times2:.+]] = fadd fast double %[[prev]], %[[prev]]
47-
; CHECK-NEXT: %[[arrayidxipgi:.+]] = getelementptr inbounds double, double* %xp, i64 %[[antiiv]]
48-
; CHECK-NEXT: %[[loaded:.+]] = load double, double* %[[arrayidxipgi]]
49-
; CHECK-NEXT: %[[tostore:.+]] = fadd fast double %[[loaded:.+]], %[[times2]]
50-
; CHECK-NEXT: store double %[[tostore]], double* %[[arrayidxipgi]]
51-
; CHECK-NEXT: %[[cmp:.+]] = icmp eq i64 %[[antiiv]], 0
52-
; CHECK-NEXT: br i1 %[[cmp]], label %diffesumsquare.exit, label %incinvertfor.body.i
53-
54-
; CHECK: incinvertfor.body.i:
55-
; CHECK-NEXT: %[[antiivnext]] = add nsw i64 %[[antiiv]], -1
56-
; CHECK-NEXT: br label %invertfor.body.i
57-
58-
; CHECK: diffesumsquare.exit: ; preds = %invertfor.body.i
59-
; CHECK-NEXT: ret void
60-
; CHECK-NEXT: }
40+
; CHECK-NEXT: br label %for.body.i
41+
42+
; CHECK: for.body.i: ; preds = %for.body.i, %entry
43+
; CHECK-NEXT: %iv.i = phi i64 [ %iv.next.i, %for.body.i ], [ 0, %entry ]
44+
; CHECK-NEXT: %"total.011'.i" = phi{{( fast)?}} double [ 0.000000e+00, %entry ], [ %4, %for.body.i ]
45+
; CHECK-NEXT: %iv.next.i = add nuw nsw i64 %iv.i, 1
46+
; CHECK-NEXT: %"arrayidx'ipg.i" = getelementptr inbounds double, double* %xp, i64 %iv.i
47+
; CHECK-NEXT: %arrayidx.i = getelementptr inbounds double, double* %x, i64 %iv.i
48+
; CHECK-NEXT: %0 = load double, double* %arrayidx.i, align 8
49+
; CHECK-NEXT: %1 = load double, double* %"arrayidx'ipg.i"
50+
; CHECK-NEXT: %2 = fmul fast double %1, %0
51+
; CHECK-NEXT: %3 = fadd fast double %2, %2
52+
; CHECK-NEXT: %4 = fadd fast double %3, %"total.011'.i"
53+
; CHECK-NEXT: %exitcond.i = icmp eq i64 %iv.i, %n
54+
; CHECK-NEXT: br i1 %exitcond.i, label %diffesumsquare.exit, label %for.body.i
55+
56+
; CHECK: diffesumsquare.exit: ; preds = %for.body.i
57+
; CHECK-NEXT: ret double %4
58+
; CHECK-NEXT: }

0 commit comments

Comments
 (0)