|  | ; RUN: llc -mtriple=x86_64-pc-windows-msvc -code-model=large -relocation-model=static -o - < %s | FileCheck %s | 
|  |  | 
|  | declare i32 @__CxxFrameHandler3(...) | 
|  |  | 
|  | declare void @bar() | 
|  |  | 
|  | define void @foo() personality i32 (...)* @__CxxFrameHandler3 { | 
|  | entry: | 
|  | invoke void @bar() | 
|  | to label %exit unwind label %cleanup | 
|  | cleanup: | 
|  | %c = cleanuppad within none [] | 
|  | call void @bar() [ "funclet"(token %c) ] | 
|  | cleanupret from %c unwind to caller | 
|  | exit: | 
|  | ret void | 
|  | } | 
|  |  | 
|  | ; CHECK: foo: # @foo | 
|  | ; CHECK: movabsq $bar, %[[reg:[^ ]*]] | 
|  | ; CHECK: callq *%[[reg]] | 
|  | ; CHECK: retq | 
|  |  | 
|  | ; CHECK: "?dtor$2@?0?foo@4HA": | 
|  | ; CHECK: movabsq $bar, %[[reg:[^ ]*]] | 
|  | ; CHECK: callq *%[[reg]] | 
|  | ; CHECK: retq                            # CLEANUPRET |