brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 5988a37 Raw
64 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=zEC12 -verify-machineinstrs \3; RUN:   | FileCheck %s --check-prefix=NOVEC4; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z16 -verify-machineinstrs \5; RUN:   | FileCheck %s  --check-prefix=VECTOR6 7declare void @foo(ptr)8 9; Test an alloca.10define half @f1() {11; NOVEC-LABEL: f1:12; NOVEC:       # %bb.0:13; NOVEC-NEXT:    stmg %r14, %r15, 112(%r15)14; NOVEC-NEXT:    .cfi_offset %r14, -4815; NOVEC-NEXT:    .cfi_offset %r15, -4016; NOVEC-NEXT:    aghi %r15, -16817; NOVEC-NEXT:    .cfi_def_cfa_offset 32818; NOVEC-NEXT:    la %r2, 166(%r15)19; NOVEC-NEXT:    brasl %r14, foo@PLT20; NOVEC-NEXT:    lgh %r0, 166(%r15)21; NOVEC-NEXT:    sllg %r0, %r0, 4822; NOVEC-NEXT:    ldgr %f0, %r023; NOVEC-NEXT:    # kill: def $f0h killed $f0h killed $f0d24; NOVEC-NEXT:    lmg %r14, %r15, 280(%r15)25; NOVEC-NEXT:    br %r1426;27; VECTOR-LABEL: f1:28; VECTOR:       # %bb.0:29; VECTOR-NEXT:    stmg %r14, %r15, 112(%r15)30; VECTOR-NEXT:    .cfi_offset %r14, -4831; VECTOR-NEXT:    .cfi_offset %r15, -4032; VECTOR-NEXT:    aghi %r15, -16833; VECTOR-NEXT:    .cfi_def_cfa_offset 32834; VECTOR-NEXT:    la %r2, 166(%r15)35; VECTOR-NEXT:    brasl %r14, foo@PLT36; VECTOR-NEXT:    vlreph %v0, 166(%r15)37; VECTOR-NEXT:    lmg %r14, %r15, 280(%r15)38; VECTOR-NEXT:    br %r1439  %ptr = alloca half40  call void @foo(ptr %ptr)41  %orig = load half, ptr %ptr42  ret half %orig43}44 45; Test accessing a half element of an aggregate type.46%s.half = type { half, half, half, half, half }47define half @f2(ptr %P) {48; NOVEC-LABEL: f2:49; NOVEC:       # %bb.0:50; NOVEC-NEXT:    lgh %r0, 6(%r2)51; NOVEC-NEXT:    sllg %r0, %r0, 4852; NOVEC-NEXT:    ldgr %f0, %r053; NOVEC-NEXT:    # kill: def $f0h killed $f0h killed $f0d54; NOVEC-NEXT:    br %r1455;56; VECTOR-LABEL: f2:57; VECTOR:       # %bb.0:58; VECTOR-NEXT:    vlreph %v0, 6(%r2)59; VECTOR-NEXT:    br %r1460  %gep = getelementptr inbounds %s.half, ptr %P, i64 0, i32 361  %res = load half, ptr %gep62  ret half %res63}64