1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-pc-windows-msvc -code-model=large -o - < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdeclare i32 @__CxxFrameHandler3(...) 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdeclare void @bar() 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine void @foo() personality i32 (...)* @__CxxFrameHandler3 { 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker invoke void @bar() 10*9880d681SAndroid Build Coastguard Worker to label %exit unwind label %cleanup 11*9880d681SAndroid Build Coastguard Workercleanup: 12*9880d681SAndroid Build Coastguard Worker %c = cleanuppad within none [] 13*9880d681SAndroid Build Coastguard Worker call void @bar() [ "funclet"(token %c) ] 14*9880d681SAndroid Build Coastguard Worker cleanupret from %c unwind to caller 15*9880d681SAndroid Build Coastguard Workerexit: 16*9880d681SAndroid Build Coastguard Worker ret void 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Worker; CHECK: foo: # @foo 20*9880d681SAndroid Build Coastguard Worker; CHECK: movabsq $bar, %[[reg:[^ ]*]] 21*9880d681SAndroid Build Coastguard Worker; CHECK: callq *%[[reg]] 22*9880d681SAndroid Build Coastguard Worker; CHECK: retq 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker; CHECK: "?dtor$2@?0?foo@4HA": 25*9880d681SAndroid Build Coastguard Worker; CHECK: movabsq $bar, %[[reg:[^ ]*]] 26*9880d681SAndroid Build Coastguard Worker; CHECK: callq *%[[reg]] 27*9880d681SAndroid Build Coastguard Worker; CHECK: retq # CLEANUPRET 28