1200f3410SHanSheng Zhang; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2200f3410SHanSheng Zhang; RUN: opt -passes=reg2mem -S < %s | FileCheck %s 3200f3410SHanSheng Zhang 4200f3410SHanSheng Zhangdeclare void @"read_mem"() 5200f3410SHanSheng Zhang 6*64539b17SMatt Arsenaultdefine void @"memcpy_seh"() personality ptr @__C_specific_handler { 7200f3410SHanSheng Zhang; CHECK-LABEL: @memcpy_seh( 8200f3410SHanSheng Zhang; CHECK-NEXT: entry: 9200f3410SHanSheng Zhang; CHECK-NEXT: %"reg2mem alloca point" = bitcast i32 0 to i32 10200f3410SHanSheng Zhang; CHECK-NEXT: invoke void @read_mem() 11200f3410SHanSheng Zhang; CHECK-NEXT: to label [[CLEANUP:%.*]] unwind label [[CATCH_DISPATCH:%.*]] 12200f3410SHanSheng Zhang; CHECK: catch.dispatch: 13200f3410SHanSheng Zhang; CHECK-NEXT: [[TMP0:%.*]] = catchswitch within none [label %__except] unwind to caller 14200f3410SHanSheng Zhang; CHECK: __except: 15*64539b17SMatt Arsenault; CHECK-NEXT: [[TMP1:%.*]] = catchpad within [[TMP0]] [ptr null] 16200f3410SHanSheng Zhang; CHECK-NEXT: unreachable 17200f3410SHanSheng Zhang; CHECK: cleanup: 18200f3410SHanSheng Zhang; CHECK-NEXT: ret void 19200f3410SHanSheng Zhang; 20200f3410SHanSheng Zhangentry: 21200f3410SHanSheng Zhang invoke void @"read_mem"() 22200f3410SHanSheng Zhang to label %cleanup unwind label %catch.dispatch 23200f3410SHanSheng Zhang 24200f3410SHanSheng Zhangcatch.dispatch: ; preds = %entry 25200f3410SHanSheng Zhang %0 = catchswitch within none [label %__except] unwind to caller 26200f3410SHanSheng Zhang 27200f3410SHanSheng Zhang__except: ; preds = %catch.dispatch 28*64539b17SMatt Arsenault %1 = catchpad within %0 [ptr null] 29200f3410SHanSheng Zhang unreachable 30200f3410SHanSheng Zhang 31200f3410SHanSheng Zhangcleanup: ; preds = %entry 32200f3410SHanSheng Zhang ret void 33200f3410SHanSheng Zhang} 34200f3410SHanSheng Zhang 35200f3410SHanSheng Zhangdeclare i32 @__C_specific_handler(...) 36