Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / PowerPC / aix-personality-alias.ll
blobfd4b4103d2f83487c1f2349f338e7469dcb28d14
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() {
10 entry:
11   ret i32 1
14 define dso_local signext i32 @_Z3foov() #0 personality ptr @__xlcxx_personality_v1 {
15 entry:
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
23   br label %try.cont
25 lpad:                                             ; preds = %entry
26   %0 = landingpad { ptr, i32 }
27           catch ptr null
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
32   br label %catch
34 catch:                                            ; preds = %lpad
35   %exn = load ptr, ptr %exn.slot, align 8
36   br label %return
38 try.cont:                                         ; preds = %invoke.cont
39   store i32 2, ptr %retval, align 4
40   br label %return
42 return:                                           ; preds = %try.cont, %catch
43   ret i32 1
46 declare void @_Z3barv()
48 ;   SYM:    .globl      __gxx_personality_v0[DS]        # -- Begin function __gxx_personality_v0
49 ;   SYM:        .globl  .__gxx_personality_v0
50 ;   SYM:        .align  4
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]
55 ; SYM32:        .vbyte  4, 0
56 ; SYM64:        .vbyte  8, .__gxx_personality_v0
57 ; SYM64:        .vbyte  8, TOC[TC0]
58 ; SYM64:        .vbyte  8, 0
59 ;   SYM:        .csect ..text..[PR],5
60 ;   SYM:  .__gxx_personality_v0:
61 ;   SYM:  .__xlcxx_personality_v1:
62 ;   SYM:  # %bb.0:                                # %entry
63 ;   SYM:        li 3, 1
64 ;   SYM:        blr
66 ;   SYM:    .csect .eh_info_table[RW],2
67 ;   SYM:  __ehinfo.1:
68 ;   SYM:        .vbyte  4, 0
69 ; SYM32:        .align  2
70 ; SYM32:        .vbyte  4, GCC_except_table1
71 ; SYM32:        .vbyte  4, __xlcxx_personality_v1
72 ; SYM64:        .align  3
73 ; SYM64:        .vbyte  8, GCC_except_table1
74 ; SYM64:        .vbyte  8, __xlcxx_personality_v1