1*f4cb935cSMatt Arsenault; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=instructions --test FileCheck --test-arg --check-prefixes=CHECK-ALL,CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t 2cf99be5cSMatt Arsenault; RUN: FileCheck --check-prefixes=CHECK-ALL,CHECK-FINAL %s < %t 30bc5436aSSamuel 40bc5436aSSamuel; CHECK-INTERESTINGNESS: define i32 @maybe_throwing_callee( 5cf99be5cSMatt Arsenault; CHECK-FINAL: define i32 @maybe_throwing_callee(i32 %arg) 60bc5436aSSamueldefine i32 @maybe_throwing_callee(i32 %arg) { 70bc5436aSSamuel; CHECK-ALL: call void @thrown() 80bc5436aSSamuel; CHECK-INTERESTINGNESS: ret i32 9cf99be5cSMatt Arsenault; CHECK-FINAL: ret i32 %arg 100bc5436aSSamuel call void @thrown() 110bc5436aSSamuel ret i32 %arg 120bc5436aSSamuel} 130bc5436aSSamuel 140bc5436aSSamuel; CHECK-ALL: declare void @did_not_throw(i32) 150bc5436aSSamueldeclare void @did_not_throw(i32) 160bc5436aSSamuel 170bc5436aSSamuel; CHECK-ALL: declare void @thrown() 180bc5436aSSamueldeclare void @thrown() 190bc5436aSSamuel 200bc5436aSSamuel; CHECK-INTERESTINGNESS: define void @caller( 21cf99be5cSMatt Arsenault; CHECK-FINAL: define void @caller(i32 %arg) 224982d8acSArthur Eubanksdefine void @caller(i32 %arg) personality ptr @__gxx_personality_v0 { 230bc5436aSSamuel; CHECK-ALL: bb: 240bc5436aSSamuelbb: 25f18c0739SSamuel; CHECK-INTERESTINGNESS: %i0 = invoke i32 {{.*}}@maybe_throwing_callee 264982d8acSArthur Eubanks; CHECK-FINAL: %i0 = invoke i32 @maybe_throwing_callee 270bc5436aSSamuel; CHECK-ALL: to label %bb3 unwind label %bb1 280bc5436aSSamuel %i0 = invoke i32 @maybe_throwing_callee(i32 %arg) 290bc5436aSSamuel to label %bb3 unwind label %bb1 300bc5436aSSamuel 310bc5436aSSamuel; CHECK-ALL: bb1: 320bc5436aSSamuelbb1: 334982d8acSArthur Eubanks; CHECK-ALL: landingpad { ptr, i32 } 344982d8acSArthur Eubanks; CHECK-ALL: catch ptr null 350bc5436aSSamuel; CHECK-ALL: call void @thrown() 360bc5436aSSamuel; CHECK-ALL: br label %bb4 374982d8acSArthur Eubanks landingpad { ptr, i32 } 384982d8acSArthur Eubanks catch ptr null 390bc5436aSSamuel call void @thrown() 400bc5436aSSamuel br label %bb4 410bc5436aSSamuel 420bc5436aSSamuel; CHECK-ALL: bb3: 430bc5436aSSamuelbb3: 440bc5436aSSamuel; CHECK-ALL: call void @did_not_throw(i32 %i0) 450bc5436aSSamuel; CHECK-ALL: br label %bb4 460bc5436aSSamuel call void @did_not_throw(i32 %i0) 470bc5436aSSamuel br label %bb4 480bc5436aSSamuel 490bc5436aSSamuel; CHECK-ALL: bb4: 500bc5436aSSamuel; CHECK-ALL: ret void 510bc5436aSSamuelbb4: 520bc5436aSSamuel ret void 530bc5436aSSamuel} 540bc5436aSSamuel 550bc5436aSSamueldeclare i32 @__gxx_personality_v0(...) 56