; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 ; Verify that MachineLICM recognizes that EH landing pad entry clobbers %r6/%r7 ; ; RUN: llc < %s -verify-machineinstrs -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s declare i64 @personality(i64, i64, i64, ptr, ptr) declare void @callee(i64, i64, i64, i64, i64) declare void @panic() define void @test() uwtable personality ptr @personality { ; CHECK-LABEL: test: ; CHECK: .Lfunc_begin0: ; CHECK-NEXT: .cfi_startproc ; CHECK-NEXT: .cfi_personality 0, personality ; CHECK-NEXT: .cfi_lsda 0, .Lexception0 ; CHECK-NEXT: # %bb.0: # %start ; CHECK-NEXT: stmg %r6, %r15, 48(%r15) ; CHECK-NEXT: .cfi_offset %r6, -112 ; CHECK-NEXT: .cfi_offset %r7, -104 ; CHECK-NEXT: .cfi_offset %r14, -48 ; CHECK-NEXT: .cfi_offset %r15, -40 ; CHECK-NEXT: aghi %r15, -160 ; CHECK-NEXT: .cfi_def_cfa_offset 320 ; CHECK-NEXT: .LBB0_1: # %bb1 ; CHECK-NEXT: # =>This Inner Loop Header: Depth=1 ; CHECK-NEXT: lghi %r2, 0 ; CHECK-NEXT: lghi %r3, 0 ; CHECK-NEXT: lghi %r4, 0 ; CHECK-NEXT: lghi %r5, 0 ; CHECK-NEXT: lghi %r6, 0 ; CHECK-NEXT: brasl %r14, callee@PLT ; CHECK-NEXT: .Ltmp0: ; CHECK-NEXT: brasl %r14, panic@PLT ; CHECK-NEXT: .Ltmp1: ; CHECK-NEXT: j .LBB0_3 ; CHECK-NEXT: .LBB0_2: # %bb3 ; CHECK-NEXT: # in Loop: Header=BB0_1 Depth=1 ; CHECK-NEXT: .Ltmp2: ; CHECK-NEXT: j .LBB0_1 ; CHECK-NEXT: .LBB0_3: # %bb2 ; CHECK-NEXT: lmg %r6, %r15, 208(%r15) ; CHECK-NEXT: br %r14 start: br label %bb1 bb1: call void @callee(i64 0, i64 0, i64 0, i64 0, i64 0) invoke void @panic() to label %bb2 unwind label %bb3 bb2: ret void bb3: %lp = landingpad { ptr, i32 } catch ptr null br label %bb1 }