Chris Lattner | 6c5eea6 | 2009-09-17 23:54:26 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -mtriple=x86_64-apple-darwin9 | FileCheck %s -check-prefix=X64 |
Chris Lattner | ed2cced | 2009-09-17 23:56:41 +0000 | [diff] [blame] | 2 | ; RUN: llc < %s -mtriple=i386-apple-darwin9 | FileCheck %s -check-prefix=X32 |
Evan Cheng | e8d1e2a | 2007-09-04 20:39:26 +0000 | [diff] [blame] | 3 | ; PR1632 |
| 4 | |
| 5 | define void @_Z1fv() { |
| 6 | entry: |
| 7 | invoke void @_Z1gv( ) |
| 8 | to label %return unwind label %unwind |
| 9 | |
| 10 | unwind: ; preds = %entry |
| 11 | br i1 false, label %eh_then, label %cleanup20 |
| 12 | |
| 13 | eh_then: ; preds = %unwind |
| 14 | invoke void @__cxa_end_catch( ) |
| 15 | to label %return unwind label %unwind10 |
| 16 | |
| 17 | unwind10: ; preds = %eh_then |
Anton Korobeynikov | 94c46a0 | 2007-09-07 11:39:35 +0000 | [diff] [blame] | 18 | %eh_select13 = tail call i64 (i8*, i8*, ...)* @llvm.eh.selector.i64( i8* null, i8* bitcast (void ()* @__gxx_personality_v0 to i8*), i32 1 ) ; <i32> [#uses=2] |
| 19 | %tmp18 = icmp slt i64 %eh_select13, 0 ; <i1> [#uses=1] |
Evan Cheng | e8d1e2a | 2007-09-04 20:39:26 +0000 | [diff] [blame] | 20 | br i1 %tmp18, label %filter, label %cleanup20 |
| 21 | |
| 22 | filter: ; preds = %unwind10 |
| 23 | unreachable |
| 24 | |
| 25 | cleanup20: ; preds = %unwind10, %unwind |
Anton Korobeynikov | 94c46a0 | 2007-09-07 11:39:35 +0000 | [diff] [blame] | 26 | %eh_selector.0 = phi i64 [ 0, %unwind ], [ %eh_select13, %unwind10 ] ; <i32> [#uses=0] |
Evan Cheng | e8d1e2a | 2007-09-04 20:39:26 +0000 | [diff] [blame] | 27 | ret void |
| 28 | |
| 29 | return: ; preds = %eh_then, %entry |
| 30 | ret void |
| 31 | } |
| 32 | |
| 33 | declare void @_Z1gv() |
| 34 | |
Anton Korobeynikov | 94c46a0 | 2007-09-07 11:39:35 +0000 | [diff] [blame] | 35 | declare i64 @llvm.eh.selector.i64(i8*, i8*, ...) |
Evan Cheng | e8d1e2a | 2007-09-04 20:39:26 +0000 | [diff] [blame] | 36 | |
| 37 | declare void @__gxx_personality_v0() |
| 38 | |
| 39 | declare void @__cxa_end_catch() |
Chris Lattner | 6c5eea6 | 2009-09-17 23:54:26 +0000 | [diff] [blame] | 40 | |
| 41 | ; X64: Leh_frame_common_begin: |
Chris Lattner | bd0764b | 2010-02-08 22:09:08 +0000 | [diff] [blame] | 42 | ; X64: .long (___gxx_personality_v0@GOTPCREL)+4 |
Chris Lattner | ed2cced | 2009-09-17 23:56:41 +0000 | [diff] [blame] | 43 | |
Chris Lattner | f283fb2 | 2009-09-18 20:22:52 +0000 | [diff] [blame] | 44 | ; X32: Leh_frame_common_begin: |
| 45 | ; X32: .long L___gxx_personality_v0$non_lazy_ptr- |
| 46 | ; .... |
| 47 | |
Chris Lattner | ed2cced | 2009-09-17 23:56:41 +0000 | [diff] [blame] | 48 | ; X32: .section __IMPORT,__pointers,non_lazy_symbol_pointers |
| 49 | ; X32: L___gxx_personality_v0$non_lazy_ptr: |
| 50 | ; X32: .indirect_symbol ___gxx_personality_v0 |