brintos

brintos / llvm-project-archived public Read only

0
0
Text · 735 B · 0d479ca Raw
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