79 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; Test long double atomic loads on z14.3;4; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s5 6define void @f1(ptr %ret, ptr %src) {7; CHECK-LABEL: f1:8; CHECK: # %bb.0:9; CHECK-NEXT: lpq %r0, 0(%r3)10; CHECK-NEXT: stg %r1, 8(%r2)11; CHECK-NEXT: stg %r0, 0(%r2)12; CHECK-NEXT: br %r1413 %val = load atomic fp128, ptr %src seq_cst, align 1614 store fp128 %val, ptr %ret, align 815 ret void16}17 18define void @f1_fpuse(ptr %ret, ptr %src) {19; CHECK-LABEL: f1_fpuse:20; CHECK: # %bb.0:21; CHECK-NEXT: lpq %r0, 0(%r3)22; CHECK-NEXT: vlvgp %v0, %r0, %r123; CHECK-NEXT: wfaxb %v0, %v0, %v024; CHECK-NEXT: vst %v0, 0(%r2), 325; CHECK-NEXT: br %r1426 %val = load atomic fp128, ptr %src seq_cst, align 1627 %use = fadd fp128 %val, %val28 store fp128 %use, ptr %ret, align 829 ret void30}31 32define void @f2(ptr %ret, ptr %src) {33; CHECK-LABEL: f2:34; CHECK: # %bb.0:35; CHECK-NEXT: stmg %r13, %r15, 104(%r15)36; CHECK-NEXT: .cfi_offset %r13, -5637; CHECK-NEXT: .cfi_offset %r14, -4838; CHECK-NEXT: .cfi_offset %r15, -4039; CHECK-NEXT: aghi %r15, -17640; CHECK-NEXT: .cfi_def_cfa_offset 33641; CHECK-NEXT: lgr %r13, %r242; CHECK-NEXT: la %r4, 160(%r15)43; CHECK-NEXT: lghi %r2, 1644; CHECK-NEXT: lhi %r5, 545; CHECK-NEXT: brasl %r14, __atomic_load@PLT46; CHECK-NEXT: vl %v0, 160(%r15), 347; CHECK-NEXT: vst %v0, 0(%r13), 348; CHECK-NEXT: lmg %r13, %r15, 280(%r15)49; CHECK-NEXT: br %r1450 %val = load atomic fp128, ptr %src seq_cst, align 851 store fp128 %val, ptr %ret, align 852 ret void53}54 55define void @f2_fpuse(ptr %ret, ptr %src) {56; CHECK-LABEL: f2_fpuse:57; CHECK: # %bb.0:58; CHECK-NEXT: stmg %r13, %r15, 104(%r15)59; CHECK-NEXT: .cfi_offset %r13, -5660; CHECK-NEXT: .cfi_offset %r14, -4861; CHECK-NEXT: .cfi_offset %r15, -4062; CHECK-NEXT: aghi %r15, -17663; CHECK-NEXT: .cfi_def_cfa_offset 33664; CHECK-NEXT: lgr %r13, %r265; CHECK-NEXT: la %r4, 160(%r15)66; CHECK-NEXT: lghi %r2, 1667; CHECK-NEXT: lhi %r5, 568; CHECK-NEXT: brasl %r14, __atomic_load@PLT69; CHECK-NEXT: vl %v0, 160(%r15), 370; CHECK-NEXT: wfaxb %v0, %v0, %v071; CHECK-NEXT: vst %v0, 0(%r13), 372; CHECK-NEXT: lmg %r13, %r15, 280(%r15)73; CHECK-NEXT: br %r1474 %val = load atomic fp128, ptr %src seq_cst, align 875 %use = fadd fp128 %val, %val76 store fp128 %use, ptr %ret, align 877 ret void78}79