; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 ; RUN: llc -mtriple=ppc64le-unknown-linux-gnu < %s | FileCheck %s @id = private unnamed_addr constant [4 x i8] c"@id\00", align 1 @id2 = private unnamed_addr constant [5 x i8] c"@id2\00", align 1 ; Higher-aligned dummy to make sure it is first in the global merge pool. @dummy = private unnamed_addr constant [1 x i32] [i32 42], align 4 define ptr @test1() personality ptr @__gnu_objc_personality_v0 { ; CHECK-LABEL: test1: ; CHECK: # %bb.0: ; CHECK-NEXT: mflr 0 ; CHECK-NEXT: stdu 1, -32(1) ; CHECK-NEXT: std 0, 48(1) ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset lr, 16 ; CHECK-NEXT: addis 3, 2, .Ldummy@toc@ha ; CHECK-NEXT: addi 3, 3, .Ldummy@toc@l ; CHECK-NEXT: bl foo ; CHECK-NEXT: nop invoke void @foo(ptr @dummy) to label %cont unwind label %unwind cont: unreachable unwind: %lp = landingpad { ptr, i32 } catch ptr @id resume { ptr, i32 } %lp } define i32 @test2() personality ptr @__gnu_objc_personality_v0 { ; CHECK-LABEL: test2: ; CHECK: # %bb.0: ; CHECK-NEXT: li 3, 1 ; CHECK-NEXT: blr %id = tail call i32 @llvm.eh.typeid.for(ptr @id2) ret i32 %id } declare i32 @__gnu_objc_personality_v0(...) declare i32 @llvm.eh.typeid.for(ptr) declare void @foo()