blob: 494a1b44e605ee199a877227adac4b7fc60be077 [file] [log] [blame] [edit]
; RUN: if [ %llvmver -lt 16 ]; then %opt < %s %loadEnzyme -print-activity-analysis -activity-analysis-func=f -activity-analysis-inactive-args -o /dev/null | FileCheck %s; fi
; RUN: %opt < %s %newLoadEnzyme -passes="print-activity-analysis" -activity-analysis-func=f -activity-analysis-inactive-args -S | FileCheck %s
declare nonnull i8** @julia.pointer_from_objref({} addrspace(11)*)
declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i1)
declare i8* @malloc(i64)
define i8* @f({} addrspace(11)* %a9) {
entry:
%a8 = call noalias i8* @malloc(i64 32)
%a10 = call nonnull i8** @julia.pointer_from_objref({} addrspace(11)* %a9)
%a12 = load i8*, i8** %a10, align 8
call void @llvm.memmove.p0i8.p0i8.i64(i8* %a8, i8* %a12, i64 32, i1 false)
ret i8* %a8
}
; CHECK: {} addrspace(11)* %a9: icv:1
; CHECK-NEXT: entry
; CHECK-NEXT: %a8 = call noalias i8* @malloc(i64 32): icv:1 ici:1
; CHECK-NEXT: %a10 = call nonnull i8** @julia.pointer_from_objref({} addrspace(11)* %a9): icv:1 ici:1
; CHECK-NEXT: %a12 = load i8*, i8** %a10, align 8: icv:1 ici:1
; CHECK-NEXT: call void @llvm.memmove.p0i8.p0i8.i64(i8* %a8, i8* %a12, i64 32, i1 false): icv:1 ici:1
; CHECK-NEXT: ret i8* %a8: icv:1 ici:1