| ; 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 |