34 lines · plain
1; Test moves between FPRs on z13.2;3; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s4 5; Test that we use LDR instead of LER.6define float @f1(float %a, float %b) {7; CHECK-LABEL: f1:8; CHECK: ldr %f0, %f29; CHECK: br %r1410 ret float %b11}12 13; Test f64 moves.14define double @f2(double %a, double %b) {15; CHECK-LABEL: f2:16; CHECK: ldr %f0, %f217; CHECK: br %r1418 ret double %b19}20 21; Test f128 moves. Since f128s are passed by reference, we need to force22; a copy by other means.23define void @f3(ptr %x) {24; CHECK-LABEL: f3:25; CHECK: lxr26; CHECK: axbr27; CHECK: br %r1428 %val = load volatile fp128, ptr %x29 %sum = fadd fp128 %val, %val30 store volatile fp128 %sum, ptr %x31 store volatile fp128 %val, ptr %x32 ret void33}34