1 ;; Test if we are still able to compile even when the personality routine is just an alias.
3 ; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec \
4 ; RUN: -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s --check-prefixes=SYM,SYM32
5 ; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=-altivec \
6 ; RUN: -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck %s --check-prefixes=SYM,SYM64
8 @__xlcxx_personality_v1 = alias i32 (), ptr @__gxx_personality_v0
9 define i32 @__gxx_personality_v0() {
14 define dso_local signext i32 @_Z3foov() #0 personality ptr @__xlcxx_personality_v1 {
16 %retval = alloca i32, align 4
17 %exn.slot = alloca ptr, align 8
18 %ehselector.slot = alloca i32, align 4
19 invoke void @_Z3barv()
20 to label %invoke.cont unwind label %lpad
22 invoke.cont: ; preds = %entry
25 lpad: ; preds = %entry
26 %0 = landingpad { ptr, i32 }
28 %1 = extractvalue { ptr, i32 } %0, 0
29 store ptr %1, ptr %exn.slot, align 8
30 %2 = extractvalue { ptr, i32 } %0, 1
31 store i32 %2, ptr %ehselector.slot, align 4
34 catch: ; preds = %lpad
35 %exn = load ptr, ptr %exn.slot, align 8
38 try.cont: ; preds = %invoke.cont
39 store i32 2, ptr %retval, align 4
42 return: ; preds = %try.cont, %catch
46 declare void @_Z3barv()
48 ; SYM: .globl __gxx_personality_v0[DS] # -- Begin function __gxx_personality_v0
49 ; SYM: .globl .__gxx_personality_v0
51 ; SYM: .csect __gxx_personality_v0[DS]
52 ; SYM: __xlcxx_personality_v1: # @__gxx_personality_v0
53 ; SYM32: .vbyte 4, .__gxx_personality_v0
54 ; SYM32: .vbyte 4, TOC[TC0]
56 ; SYM64: .vbyte 8, .__gxx_personality_v0
57 ; SYM64: .vbyte 8, TOC[TC0]
59 ; SYM: .csect ..text..[PR],5
60 ; SYM: .__gxx_personality_v0:
61 ; SYM: .__xlcxx_personality_v1:
62 ; SYM: # %bb.0: # %entry
66 ; SYM: .csect .eh_info_table[RW],2
70 ; SYM32: .vbyte 4, GCC_except_table1
71 ; SYM32: .vbyte 4, __xlcxx_personality_v1
73 ; SYM64: .vbyte 8, GCC_except_table1
74 ; SYM64: .vbyte 8, __xlcxx_personality_v1