66 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; Test i128 in GPRs versus VRs.3;4; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 -no-integrated-as | FileCheck %s5 6define i128 @f1() {7; CHECK-LABEL: f1:8; CHECK: # %bb.0:9; CHECK-NEXT: vgbm %v0, 010; CHECK-NEXT: #APP11; CHECK-NEXT: blah %v1 %v012; CHECK-NEXT: #NO_APP13; CHECK-NEXT: vst %v1, 0(%r2), 314; CHECK-NEXT: br %r1415 %val = call i128 asm "blah $0 $1", "=&v,v" (i128 0)16 ret i128 %val17}18 19define i128 @f2() {20; CHECK-LABEL: f2:21; CHECK: # %bb.0:22; CHECK-NEXT: vgbm %v4, 023; CHECK-NEXT: #APP24; CHECK-NEXT: blah %v425; CHECK-NEXT: #NO_APP26; CHECK-NEXT: vst %v4, 0(%r2), 327; CHECK-NEXT: br %r1428 %val = call i128 asm "blah $0", "={v4},0" (i128 0)29 ret i128 %val30}31 32define i128 @f3() {33; CHECK-LABEL: f3:34; CHECK: # %bb.0:35; CHECK-NEXT: lghi %r0, 036; CHECK-NEXT: lgr %r1, %r037; CHECK-NEXT: #APP38; CHECK-NEXT: blah %r4 %r039; CHECK-NEXT: #NO_APP40; CHECK-NEXT: stg %r5, 8(%r2)41; CHECK-NEXT: stg %r4, 0(%r2)42; CHECK-NEXT: br %r1443 %val = call i128 asm "blah $0 $1", "=&r,r" (i128 0)44 ret i128 %val45}46 47define i128 @f4() {48; CHECK-LABEL: f4:49; CHECK: # %bb.0:50; CHECK-NEXT: stmg %r8, %r15, 64(%r15)51; CHECK-NEXT: .cfi_offset %r8, -9652; CHECK-NEXT: .cfi_offset %r9, -8853; CHECK-NEXT: .cfi_offset %r15, -4054; CHECK-NEXT: lghi %r8, 055; CHECK-NEXT: lgr %r9, %r856; CHECK-NEXT: #APP57; CHECK-NEXT: blah %r858; CHECK-NEXT: #NO_APP59; CHECK-NEXT: stg %r9, 8(%r2)60; CHECK-NEXT: stg %r8, 0(%r2)61; CHECK-NEXT: lmg %r8, %r15, 64(%r15)62; CHECK-NEXT: br %r1463 %val = call i128 asm "blah $0", "={r8},0" (i128 0)64 ret i128 %val65}66