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