1*9880d681SAndroid Build Coastguard Worker; RUN: not opt -S -verify < %s 2>&1 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.experimental.guard(i1, ...) 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdeclare void @unknown() 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine void @f_nodeopt() { 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker call void(i1, ...) @llvm.experimental.guard(i1 undef, i32 1, i32 2) 10*9880d681SAndroid Build Coastguard Worker; CHECK: guard must have exactly one "deopt" operand bundle 11*9880d681SAndroid Build Coastguard Worker ret void 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Workerdefine void @f_invoke() personality i8 3 { 15*9880d681SAndroid Build Coastguard Workerentry: 16*9880d681SAndroid Build Coastguard Worker invoke void(i1, ...) @llvm.experimental.guard(i1 undef, i32 0, float 0.0) [ "deopt"() ] to label %ok unwind label %not_ok 17*9880d681SAndroid Build Coastguard Worker; CHECK: guard cannot be invoked 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerok: 20*9880d681SAndroid Build Coastguard Worker ret void 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workernot_ok: 23*9880d681SAndroid Build Coastguard Worker %0 = landingpad { i8*, i32 } 24*9880d681SAndroid Build Coastguard Worker filter [0 x i8*] zeroinitializer 25*9880d681SAndroid Build Coastguard Worker ret void 26*9880d681SAndroid Build Coastguard Worker} 27