File tree 2 files changed +31
-0
lines changed
2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -87,6 +87,7 @@ std::set<std::string> KnownInactiveFunctions = {
87
87
" __cxa_guard_release" ,
88
88
" __cxa_guard_abort" ,
89
89
" printf" ,
90
+ " putchar" ,
90
91
" vprintf" ,
91
92
" puts" ,
92
93
" fflush" ,
Original file line number Diff line number Diff line change
1
+ ; RUN: %opt < %s %loadEnzyme -enzyme -enzyme-preopt=false -O3 -S | FileCheck %s
2
+
3
+ declare i32 @putchar (i32 )
4
+
5
+ ; Function Attrs: nounwind readnone uwtable
6
+ define double @tester (double %x ) {
7
+ entry:
8
+ %tmp = call i32 @putchar (i32 32 )
9
+ %0 = tail call fast double @llvm.exp.f64 (double %x )
10
+ ret double %0
11
+ }
12
+
13
+ define double @test_derivative (double %x ) {
14
+ entry:
15
+ %0 = tail call double (double (double )*, ...) @__enzyme_autodiff (double (double )* nonnull @tester , double %x )
16
+ ret double %0
17
+ }
18
+
19
+ ; Function Attrs: nounwind readnone speculatable
20
+ declare double @llvm.exp.f64 (double )
21
+
22
+ ; Function Attrs: nounwind
23
+ declare double @__enzyme_autodiff (double (double )*, ...)
24
+
25
+ ; CHECK: define double @test_derivative(double %x)
26
+ ; CHECK-NEXT: entry:
27
+ ; CHECK-NEXT: %tmp.i = tail call i32 @putchar(i32 32)
28
+ ; CHECK-NEXT: %0 = tail call fast double @llvm.exp.f64(double %x)
29
+ ; CHECK-NEXT: ret double %0
30
+ ; CHECK-NEXT: }
You can’t perform that action at this time.
0 commit comments