1; RUN: opt < %s -passes=instcombine -S | FileCheck %s 2 3%struct.__va_list = type { ptr, ptr, ptr, i32, i32 } 4 5declare void @llvm.lifetime.start.p0(i64, ptr nocapture) 6declare void @llvm.lifetime.end.p0(i64, ptr nocapture) 7declare void @llvm.va_start(ptr) 8declare void @llvm.va_end(ptr) 9declare void @llvm.va_copy(ptr, ptr) 10 11define i32 @func(ptr nocapture readnone %fmt, ...) { 12; CHECK-LABEL: @func( 13; CHECK: entry: 14; CHECK-NEXT: ret i32 0 15entry: 16 %va0 = alloca %struct.__va_list, align 8 17 %va1 = alloca %struct.__va_list, align 8 18 call void @llvm.lifetime.start.p0(i64 32, ptr %va0) 19 call void @llvm.va_start(ptr %va0) 20 call void @llvm.lifetime.start.p0(i64 32, ptr %va1) 21 call void @llvm.va_copy(ptr %va1, ptr %va0) 22 call void @llvm.va_end(ptr %va1) 23 call void @llvm.lifetime.end.p0(i64 32, ptr %va1) 24 call void @llvm.va_end(ptr %va0) 25 call void @llvm.lifetime.end.p0(i64 32, ptr %va0) 26 ret i32 0 27} 28 29