Skip to content

Commit e123210

Browse files
committed
continue
1 parent ae2c20b commit e123210

File tree

6 files changed

+43
-50
lines changed

6 files changed

+43
-50
lines changed

enzyme/test/Enzyme/ForwardMode/fmuladd2.ll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
; RUN: if [ %llvmver -lt 16 ]; then %opt < %s %loadEnzyme -enzyme -enzyme-preopt=false -instsimplify -S | FileCheck %s; fi
21
; RUN: %opt < %s %newLoadEnzyme -passes="enzyme,function(instsimplify)" -enzyme-preopt=false -S | FileCheck %s
32

43
; Function Attrs: nounwind readnone uwtable

enzyme/test/Enzyme/ForwardMode/noneed_arg.ll

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
; RUN: if [ %llvmver -lt 16 ]; then %opt < %s %loadEnzyme -enzyme -enzyme-preopt=false -S | FileCheck %s; fi
2-
; RUN: %opt < %s %newLoadEnzyme -passes="enzyme" -enzyme-preopt=false -S | FileCheck %s
1+
; RUN: %opt < %s %newLoadEnzyme -passes="enzyme" -enzyme-preopt=false -S -enzyme-detect-readthrow=0 | FileCheck %s
32

43
declare double @__enzyme_fwddiff(...)
54

enzyme/test/Enzyme/ForwardMode/noneed_arg2.ll

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
; RUN: if [ %llvmver -lt 16 ]; then %opt < %s %loadEnzyme -enzyme -enzyme-preopt=false -S | FileCheck %s; fi
2-
; RUN: %opt < %s %newLoadEnzyme -passes="enzyme" -enzyme-preopt=false -S | FileCheck %s
1+
; RUN: %opt < %s %newLoadEnzyme -passes="enzyme" -enzyme-preopt=false -S -enzyme-detect-readthrow=0 | FileCheck %s
32

43
declare double @__enzyme_fwddiff(...)
54

enzyme/test/Enzyme/ReverseMode/insertshadow.ll

Lines changed: 39 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
; RUN: if [ %llvmver -lt 16 ]; then %opt < %s %loadEnzyme -enzyme -mem2reg -instsimplify -simplifycfg -S -enzyme-julia-addr-load --enzyme-detect-readthrow=0 | FileCheck %s; fi
2-
; RUN: %opt < %s %newLoadEnzyme -passes="enzyme,function(mem2reg,instsimplify,%simplifycfg)" -S -enzyme-julia-addr-load --enzyme-detect-readthrow=0 | FileCheck %s
1+
; RUN: if [ %llvmver -lt 16 ]; then %opt < %s %loadEnzyme -enzyme -mem2reg -instsimplify -simplifycfg -S -enzyme-julia-addr-load | FileCheck %s; fi
2+
; RUN: %opt < %s %newLoadEnzyme -passes="enzyme,function(mem2reg,instsimplify,%simplifycfg)" -S -enzyme-julia-addr-load | FileCheck %s
33

44
source_filename = "start"
55
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:10:11:12:13"
@@ -209,45 +209,41 @@ attributes #15 = { nounwind "enzyme_no_escaping_allocation" }
209209

210210
; CHECK: define internal fastcc void @diffea0
211211
; CHECK-NEXT: bb:
212-
; CHECK-NEXT: %malloccall1 = extractvalue { {} addrspace(10)*, {} addrspace(10)*, i8*, double, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } %tapeArg, 2
213-
; CHECK-NEXT: %i2 = bitcast i8* %malloccall1 to { [1 x [2 x double]], double }*, !enzyme_caststack !7
214-
; CHECK-NEXT: %i3 = call {}*** @julia.get_pgcstack() #13
215-
; CHECK-NEXT: %"i5'il_phi" = extractvalue { {} addrspace(10)*, {} addrspace(10)*, i8*, double, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } %tapeArg, 1
216-
; CHECK-NEXT: %"i6'ipc" = addrspacecast {} addrspace(10)* %"arg'" to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*
217-
; CHECK-NEXT: %"i7'ipg" = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %"i6'ipc", i64 0, i32 0
218-
; CHECK-NEXT: %i11 = getelementptr inbounds { [1 x [2 x double]], double }, { [1 x [2 x double]], double }* %i2, i64 0, i32 1
219-
; CHECK-NEXT: %"i12'ipc" = addrspacecast {} addrspace(10)* %"i5'il_phi" to double addrspace(13)* addrspace(11)*
220-
; CHECK-NEXT: %"i13'ipl" = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %"i12'ipc", align 8, !tbaa !11, !alias.scope !102, !noalias !105, !nonnull !7
221-
; CHECK-NEXT: %i15 = extractvalue { {} addrspace(10)*, {} addrspace(10)*, i8*, double, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } %tapeArg, 3
222-
; CHECK-NEXT: %"i17'ipl" = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(11)* %"i7'ipg", align 16, !tbaa !11, !alias.scope !107, !noalias !110, !nonnull !7
223-
; CHECK-NEXT: %"i18'ipc" = bitcast i8 addrspace(13)* %"i17'ipl" to double addrspace(13)*
224-
; CHECK-NEXT: %"i19'ipg" = getelementptr inbounds i8, i8 addrspace(13)* %"i17'ipl", i64 8
225-
; CHECK-NEXT: %"i20'ipc" = bitcast i8 addrspace(13)* %"i19'ipg" to double addrspace(13)*
226-
; CHECK-NEXT: %i21 = getelementptr inbounds [2 x [3 x {} addrspace(10)*]], [2 x [3 x {} addrspace(10)*]] addrspace(11)* %arg1, i64 0, i64 1
227-
; CHECK-NEXT: %i22 = icmp eq [3 x {} addrspace(10)*] addrspace(11)* %i21, null
228-
; CHECK-NEXT: %i24 = extractvalue { {} addrspace(10)*, {} addrspace(10)*, i8*, double, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } %tapeArg, 4
229-
; CHECK-NEXT: %"i25'ipiv" = insertvalue [3 x {} addrspace(10)*] undef, {} addrspace(10)* %i24, 0
230-
; CHECK-NEXT: %i27 = extractvalue { {} addrspace(10)*, {} addrspace(10)*, i8*, double, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } %tapeArg, 5
231-
; CHECK-NEXT: %"i28'ipiv" = insertvalue [3 x {} addrspace(10)*] %"i25'ipiv", {} addrspace(10)* %i27, 1
232-
; CHECK-NEXT: %"i30'il_phi" = extractvalue { {} addrspace(10)*, {} addrspace(10)*, i8*, double, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } %tapeArg, 0
233-
; CHECK-NEXT: %"i31'ipiv" = insertvalue [3 x {} addrspace(10)*] %"i28'ipiv", {} addrspace(10)* %"i30'il_phi", 2
234-
; CHECK-NEXT: %"i32'ipse" = select i1 %i22, [3 x {} addrspace(10)*] zeroinitializer, [3 x {} addrspace(10)*] %"i31'ipiv"
235-
; CHECK-NEXT: %"i33'ipev" = extractvalue [3 x {} addrspace(10)*] %"i32'ipse", 2
236-
; CHECK-NEXT: %"i34'ipc" = addrspacecast {} addrspace(10)* %"i33'ipev" to double addrspace(13)* addrspace(11)*
237-
; CHECK-NEXT: %"i35'ipl" = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %"i34'ipc", align 8, !tbaa !11, !alias.scope !112, !noalias !115, !nonnull !7
238-
; CHECK-NEXT: %i37 = load double, double* %i11, align 8, !tbaa !35, !alias.scope !117, !noalias !120, !enzyme_type !34, !enzymejl_byref_BITS_VALUE !7, !enzymejl_source_type_Float64 !7
239-
; CHECK-NEXT: %0 = fmul fast double %differeturn, %i37
240-
; CHECK-NEXT: %1 = load double, double addrspace(13)* %"i35'ipl", align 8, !tbaa !29, !alias.scope !122, !noalias !125
241-
; CHECK-NEXT: %2 = fadd fast double %1, %0
242-
; CHECK-NEXT: store double %2, double addrspace(13)* %"i35'ipl", align 8, !tbaa !29, !alias.scope !122, !noalias !125
243-
; CHECK-NEXT: store double 0.000000e+00, double addrspace(13)* %"i20'ipc", align 8, !tbaa !26, !alias.scope !127, !noalias !130
244-
; CHECK-NEXT: %3 = load double, double addrspace(13)* %"i18'ipc", align 8, !tbaa !26, !alias.scope !127, !noalias !130
245-
; CHECK-NEXT: store double 0.000000e+00, double addrspace(13)* %"i18'ipc", align 8, !tbaa !26, !alias.scope !127, !noalias !130
246-
; CHECK-NEXT: %4 = fmul fast double %3, %i15
247-
; CHECK-NEXT: %5 = load double, double addrspace(13)* %"i13'ipl", align 8, !tbaa !29, !alias.scope !132, !noalias !135
248-
; CHECK-NEXT: %6 = fadd fast double %5, %4
249-
; CHECK-NEXT: store double %6, double addrspace(13)* %"i13'ipl", align 8, !tbaa !29, !alias.scope !132, !noalias !135
250-
; CHECK-NEXT: call void @free(i8* %malloccall1)
251-
; CHECK-NEXT: ret void
252-
; CHECK-NEXT: }
212+
; CHECK-NEXT: %i2 = alloca { [1 x [2 x double]], double }, i64 1, align 8, !enzymejl_allocart !2, !enzyme_type !3, !enzymejl_allocart_name !6
213+
; CHECK-NEXT: %i3 = call {}*** @julia.get_pgcstack() #13
214+
; CHECK-NEXT: %"i5'il_phi" = extractvalue { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } %tapeArg, 1
215+
; CHECK-NEXT: %"i6'ipc" = addrspacecast {} addrspace(10)* %"arg'" to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*
216+
; CHECK-NEXT: %"i7'ipg" = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %"i6'ipc", i64 0, i32 0
217+
; CHECK-NEXT: %i11 = getelementptr inbounds { [1 x [2 x double]], double }, { [1 x [2 x double]], double }* %i2, i64 0, i32 1
218+
; CHECK-NEXT: %"i12'ipc" = addrspacecast {} addrspace(10)* %"i5'il_phi" to double addrspace(13)* addrspace(11)*
219+
; CHECK-NEXT: %"i13'ipl" = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %"i12'ipc", align 8, !tbaa !11, !alias.scope !101, !noalias !104, !nonnull !7
220+
; CHECK-NEXT: %i15 = load double, double* %i11, align 8, !tbaa !35, !alias.scope !106, !noalias !109, !enzyme_type !34, !enzymejl_byref_BITS_VALUE !7, !enzymejl_source_type_Float64 !7 %"i17'ipl" = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(11)* %"i7'ipg", align 16, !tbaa !11, !alias.scope !111, !noalias !114, !nonnull !7
221+
; CHECK-NEXT: %"i18'ipc" = bitcast i8 addrspace(13)* %"i17'ipl" to double addrspace(13)*
222+
; CHECK-NEXT: %"i19'ipg" = getelementptr inbounds i8, i8 addrspace(13)* %"i17'ipl", i64 8
223+
; CHECK-NEXT: %"i20'ipc" = bitcast i8 addrspace(13)* %"i19'ipg" to double addrspace(13)*
224+
; CHECK-NEXT: %i21 = getelementptr inbounds [2 x [3 x {} addrspace(10)*]], [2 x [3 x {} addrspace(10)*]] addrspace(11)* %arg1, i64 0, i64 1
225+
; CHECK-NEXT: %i22 = icmp eq [3 x {} addrspace(10)*] addrspace(11)* %i21, null
226+
; CHECK-NEXT: %i24 = extractvalue { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } %tapeArg, 2
227+
; CHECK-NEXT: %"i25'ipiv" = insertvalue [3 x {} addrspace(10)*] undef, {} addrspace(10)* %i24, 0
228+
; CHECK-NEXT: %i27 = extractvalue { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } %tapeArg, 3
229+
; CHECK-NEXT: %"i28'ipiv" = insertvalue [3 x {} addrspace(10)*] %"i25'ipiv", {} addrspace(10)* %i27, 1
230+
; CHECK-NEXT: %"i30'il_phi" = extractvalue { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } %tapeArg, 0
231+
; CHECK-NEXT: %"i31'ipiv" = insertvalue [3 x {} addrspace(10)*] %"i28'ipiv", {} addrspace(10)* %"i30'il_phi", 2
232+
; CHECK-NEXT: %"i32'ipse" = select i1 %i22, [3 x {} addrspace(10)*] zeroinitializer, [3 x {} addrspace(10)*] %"i31'ipiv"
233+
; CHECK-NEXT: %"i33'ipev" = extractvalue [3 x {} addrspace(10)*] %"i32'ipse", 2
234+
; CHECK-NEXT: %"i34'ipc" = addrspacecast {} addrspace(10)* %"i33'ipev" to double addrspace(13)* addrspace(11)*
235+
; CHECK-NEXT: %"i35'ipl" = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %"i34'ipc", align 8, !tbaa !11, !alias.scope !116, !noalias !119, !nonnull !7
236+
; CHECK-NEXT: %i37 = load double, double* %i11, align 8, !tbaa !35, !alias.scope !106, !noalias !109, !enzyme_type !34, !enzymejl_byref_BITS_VALUE !7, !enzymejl_source_type_Float64 !7 %0 = fmul fast double %differeturn, %i37
237+
; CHECK-NEXT: %1 = load double, double addrspace(13)* %"i35'ipl", align 8, !tbaa !29, !alias.scope !121, !noalias !124
238+
; CHECK-NEXT: %2 = fadd fast double %1, %0
239+
; CHECK-NEXT: store double %2, double addrspace(13)* %"i35'ipl", align 8, !tbaa !29, !alias.scope !121, !noalias !124
240+
; CHECK-NEXT: store double 0.000000e+00, double addrspace(13)* %"i20'ipc", align 8, !tbaa !26, !alias.scope !126, !noalias !129
241+
; CHECK-NEXT: %3 = load double, double addrspace(13)* %"i18'ipc", align 8, !tbaa !26, !alias.scope !126, !noalias !129
242+
; CHECK-NEXT: store double 0.000000e+00, double addrspace(13)* %"i18'ipc", align 8, !tbaa !26, !alias.scope !126, !noalias !129
243+
; CHECK-NEXT: %4 = fmul fast double %3, %i15
244+
; CHECK-NEXT: %5 = load double, double addrspace(13)* %"i13'ipl", align 8, !tbaa !29, !alias.scope !131, !noalias !134
245+
; CHECK-NEXT: %6 = fadd fast double %5, %4
246+
; CHECK-NEXT: store double %6, double addrspace(13)* %"i13'ipl", align 8, !tbaa !29, !alias.scope !131, !noalias !134
247+
; CHECK-NEXT: ret void
248+
; CHECK-NEXT:}
253249

enzyme/test/Enzyme/ReverseMode/rematprimal.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ attributes #4 = { nounwind willreturn "enzyme_no_escaping_allocation" }
9292
!27 = !{!14, !15, !9, !17}
9393
!28 = !{!12, !14, !15, !9, !17}
9494

95-
; CHECK: define internal void @diffejulia_set_params_870({} addrspace(10)* nocapture readonly align 8 %arg, {} addrspace(10)* nocapture align 8 %"arg'", {} addrspace(10)* align 8 dereferenceable(24) %arg1, {} addrspace(10)* align 8 %"arg1'", i1 %arg2, i8* %tapeArg)
95+
; CHECK: define internal void @diffejulia_set_params_870({} addrspace(10)* nocapture readonly align 8 %arg, {} addrspace(10)* nocapture align 8 %"arg'", {} addrspace(10)* nocapture readonly align 8 dereferenceable(24) %arg1, {} addrspace(10)* nocapture align 8 %"arg1'", i1 %arg2, i8* %tapeArg)
9696
; CHECK-NEXT: bb:
9797
; CHECK-NEXT: %0 = bitcast i8* %tapeArg to { {} addrspace(10)*, {} addrspace(10)* }*
9898
; CHECK-NEXT: %truetape = load { {} addrspace(10)*, {} addrspace(10)* }, { {} addrspace(10)*, {} addrspace(10)* }* %0, align 8, !enzyme_mustcache !

enzyme/test/Enzyme/ReverseMode/retptr.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ entry:
2424

2525
declare float @__enzyme_autodiff(float (float**)*, ...)
2626

27-
; CHECK: define internal void @diffef(float** %this, float** %"this'", float %differeturn)
27+
; CHECK: define internal void @diffef(float** nocapture readonly %this, float** nocapture %"this'", float %differeturn)
2828
; CHECK-NEXT: entry:
2929
; CHECK-NEXT: %[[augsub:.+]] = call float* @augmented_sub(float** %this, float** %"this'")
3030
; CHECK-NEXT: %[[loadsub:.+]] = load float, float* %[[augsub]]

0 commit comments

Comments
 (0)