; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 ; Test longjmp load from jmp_buf. ; Frame pointer from Slot 1. ; Jump address from Slot 2. ; Backchain Value from Slot 3. ; Stack Pointer from Slot 4. ; Literal Pool Pointer from Slot 5. ; RUN: llc < %s -verify-machineinstrs -mtriple=s390x-linux-gnu | FileCheck %s @buf = global [20 x ptr] zeroinitializer, align 8 define void @foo() { ; CHECK-LABEL: foo: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stmg %r11, %r15, 88(%r15) ; CHECK-NEXT: .cfi_offset %r11, -72 ; CHECK-NEXT: .cfi_offset %r13, -56 ; CHECK-NEXT: .cfi_offset %r15, -40 ; CHECK-NEXT: lgrl %r1, buf@GOT ; CHECK-NEXT: lg %r2, 8(%r1) ; CHECK-NEXT: lg %r11, 0(%r1) ; CHECK-NEXT: lg %r13, 32(%r1) ; CHECK-NEXT: lg %r15, 24(%r1) ; CHECK-NEXT: br %r2 entry: tail call void @llvm.eh.sjlj.longjmp(ptr nonnull @buf) unreachable } define void @bar() "backchain" { ; CHECK-LABEL: bar: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stmg %r11, %r15, 88(%r15) ; CHECK-NEXT: .cfi_offset %r11, -72 ; CHECK-NEXT: .cfi_offset %r13, -56 ; CHECK-NEXT: .cfi_offset %r15, -40 ; CHECK-NEXT: lgrl %r1, buf@GOT ; CHECK-NEXT: lg %r2, 8(%r1) ; CHECK-NEXT: lg %r11, 0(%r1) ; CHECK-NEXT: lg %r13, 32(%r1) ; CHECK-NEXT: lg %r3, 16(%r1) ; CHECK-NEXT: lg %r15, 24(%r1) ; CHECK-NEXT: stg %r3, 0(%r15) ; CHECK-NEXT: br %r2 entry: tail call void @llvm.eh.sjlj.longjmp(ptr nonnull @buf) unreachable }