Skip to content

Commit b3a1ddc

Browse files
committed
fix fabs test add maxnumtest
1 parent 4e070f9 commit b3a1ddc

File tree

13 files changed

+16
-360
lines changed

13 files changed

+16
-360
lines changed

enzyme/Enzyme/Enzyme.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4049,18 +4049,18 @@ Function* CreatePrimalAndGradient(Function* todiff, const std::set<unsigned>& co
40494049
case Intrinsic::fabs: {
40504050
if (!gutils->isConstantInstruction(op) && !gutils->isConstantValue(op->getOperand(0))) {
40514051
auto cmp = Builder2.CreateFCmpOLT(lookup(op->getOperand(0)), ConstantFP::get(op->getOperand(0)->getType(), 0));
4052-
dif0 = Builder2.CreateSelect(cmp, ConstantFP::get(op->getOperand(0)->getType(), -1), ConstantFP::get(op->getOperand(0)->getType(), 1));
4052+
dif0 = Builder2.CreateFMul(Builder2.CreateSelect(cmp, ConstantFP::get(op->getOperand(0)->getType(), -1), ConstantFP::get(op->getOperand(0)->getType(), 1)), diffe(inst));
40534053
}
40544054
break;
40554055
}
40564056
case Intrinsic::maxnum: {
40574057
if (!gutils->isConstantInstruction(op) && !gutils->isConstantValue(op->getOperand(0))) {
40584058
auto cmp = Builder2.CreateFCmpOLT(lookup(op->getOperand(0)), lookup(op->getOperand(1)));
4059-
dif0 = Builder2.CreateSelect(cmp, ConstantFP::get(op->getOperand(0)->getType(), 0), ConstantFP::get(op->getOperand(0)->getType(), 1));
4059+
dif0 = Builder2.CreateSelect(cmp, ConstantFP::get(op->getOperand(0)->getType(), 0), diffe(inst));
40604060
}
40614061
if (!gutils->isConstantInstruction(op) && !gutils->isConstantValue(op->getOperand(1))) {
40624062
auto cmp = Builder2.CreateFCmpOLT(lookup(op->getOperand(0)), lookup(op->getOperand(1)));
4063-
dif1 = Builder2.CreateSelect(cmp, ConstantFP::get(op->getOperand(0)->getType(), 1), ConstantFP::get(op->getOperand(0)->getType(), 0));
4063+
dif1 = Builder2.CreateSelect(cmp, diffe(inst), ConstantFP::get(op->getOperand(0)->getType(), 0));
40644064
}
40654065
break;
40664066
}

enzyme/test/Enzyme/add.ll

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,10 @@ entry:
1313
ret double %0
1414
}
1515

16-
; Function Attrs: nounwind readnone speculatable
17-
declare double @llvm.cos.f64(double)
18-
19-
; Function Attrs: nounwind readnone speculatable
20-
declare double @llvm.sin.f64(double)
21-
2216
; Function Attrs: nounwind
2317
declare double @__enzyme_autodiff(double (double, double)*, ...)
2418

25-
; CHECK: define internal { double, double } @diffetester(double %x, double %y, double %[[differet:.+]])
19+
; CHECK: define internal {{(dso_local )?}}{ double, double } @diffetester(double %x, double %y, double %[[differet:.+]])
2620
; CHECK-NEXT: entry:
2721
; CHECK-NEXT: %0 = insertvalue { double, double } undef, double %[[differet]], 0
2822
; CHECK-NEXT: %1 = insertvalue { double, double } %0, double %[[differet]], 1

enzyme/test/Enzyme/constant.ll

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,10 @@ entry:
1212
ret double %0
1313
}
1414

15-
; Function Attrs: nounwind readnone speculatable
16-
declare double @llvm.cos.f64(double)
17-
18-
; Function Attrs: nounwind readnone speculatable
19-
declare double @llvm.sin.f64(double)
20-
2115
; Function Attrs: nounwind
2216
declare double @__enzyme_autodiff(double (double)*, ...)
2317

24-
; CHECK: define internal { double } @diffetester(double %x, double %[[differet:.+]])
18+
; CHECK: define internal {{(dso_local )?}}{ double } @diffetester(double %x, double %[[differet:.+]])
2519
; CHECK-NEXT: entry:
2620
; CHECK-NEXT: ret { double } zeroinitializer
2721
; CHECK-NEXT: }

enzyme/test/Enzyme/div.ll

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,10 @@ entry:
1313
ret double %0
1414
}
1515

16-
; Function Attrs: nounwind readnone speculatable
17-
declare double @llvm.cos.f64(double)
18-
19-
; Function Attrs: nounwind readnone speculatable
20-
declare double @llvm.sin.f64(double)
21-
2216
; Function Attrs: nounwind
2317
declare double @__enzyme_autodiff(double (double, double)*, ...)
2418

25-
; CHECK: define internal { double, double } @diffetester(double %x, double %y, double %[[differet:.+]])
19+
; CHECK: define internal {{(dso_local )?}}{ double, double } @diffetester(double %x, double %y, double %[[differet:.+]])
2620
; CHECK-NEXT: entry:
2721
; CHECK-NEXT: %[[diffex:.+]] = fdiv fast double %[[differet]], %y
2822
; CHECK-NEXT: %[[xdivy:.+]] = fdiv fast double %x, %y

enzyme/test/Enzyme/fabs.ll

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: opt < %s %loadEnzyme -enzyme -O3 -S | FileCheck %s
1+
; RUN: opt < %s %loadEnzyme -enzyme -mem2reg -early-cse -simplifycfg -S | FileCheck %s
22

33
; Function Attrs: nounwind readnone uwtable
44
define double @tester(double %x) {
@@ -19,9 +19,11 @@ declare double @llvm.fabs.f64(double)
1919
; Function Attrs: nounwind
2020
declare double @__enzyme_autodiff(double (double)*, ...)
2121

22-
; CHECK: define double @test_derivative(double %x)
22+
; CHECK: define internal {{(dso_local )?}}{ double } @diffetester(double %x, double %[[differet:.+]])
2323
; CHECK-NEXT: entry:
2424
; CHECK-NEXT: %0 = fcmp fast olt double %x, 0.000000e+00
2525
; CHECK-NEXT: %1 = select i1 %0, double -1.000000e+00, double 1.000000e+00
26-
; CHECK-NEXT: ret double %1
26+
; CHECK-NEXT: %2 = fmul fast double %1, %[[differet]]
27+
; CHECK-NEXT: %3 = insertvalue { double } undef, double %2, 0
28+
; CHECK-NEXT: ret { double } %3
2729
; CHECK-NEXT: }

enzyme/test/Enzyme/itermax.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ attributes #2 = { nounwind }
6868
!5 = !{!"Simple C/C++ TBAA"}
6969

7070

71-
; CHECK: define internal void @diffeiterA(double* noalias nocapture readonly %x, double* %"x'", i64 %n)
71+
; CHECK: define internal {{(dso_local )?}}void @diffeiterA(double* noalias nocapture readonly %x, double* %"x'", i64 %n)
7272
; CHECK-NEXT: entry:
7373
; CHECK-NEXT: %exitcond11 = icmp eq i64 %n, 0
7474
; CHECK-NEXT: br i1 %exitcond11, label %invertfor.cond.cleanup, label %for.body.for.body_crit_edge.preheader

enzyme/test/Enzyme/max.ll

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ entry:
1515
ret double %0
1616
}
1717

18-
; Function Attrs: nounwind readnone speculatable
19-
declare double @llvm.pow.f64(double, double)
20-
2118
; Function Attrs: nounwind
2219
declare double @__enzyme_autodiff(double (double, double)*, ...)
2320

enzyme/test/Enzyme/mul.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ declare double @llvm.sin.f64(double)
2222
; Function Attrs: nounwind
2323
declare double @__enzyme_autodiff(double (double, double)*, ...)
2424

25-
; CHECK: define internal { double, double } @diffetester(double %x, double %y, double %[[differet:.+]])
25+
; CHECK: define internal {{(dso_local )?}}{ double, double } @diffetester(double %x, double %y, double %[[differet:.+]])
2626
; CHECK-NEXT: entry:
2727
; CHECK-NEXT: %[[diffex:.+]] = fmul fast double %[[differet]], %y
2828
; CHECK-NEXT: %[[diffey:.+]] = fmul fast double %[[differet]], %x

enzyme/test/Enzyme/op

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)