brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · f9af901 Raw
57 lines · plain
1; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s2 3declare double @llvm.experimental.constrained.fma.f64(double %f1, double %f2, double %f3, metadata, metadata)4declare float @llvm.experimental.constrained.fma.f32(float %f1, float %f2, float %f3, metadata, metadata)5 6define double @f1(double %f1, double %f2, double %acc) #0 {7; CHECK-LABEL: f1:8; CHECK: wfnmadb %f0, %f0, %f2, %f49; CHECK: br %r1410  %res = call double @llvm.experimental.constrained.fma.f64 (11                        double %f1, double %f2, double %acc,12                        metadata !"round.dynamic",13                        metadata !"fpexcept.strict") #014  %negres = fneg double %res15  ret double %negres16}17 18define double @f2(double %f1, double %f2, double %acc) #0 {19; CHECK-LABEL: f2:20; CHECK: wfnmsdb %f0, %f0, %f2, %f421; CHECK: br %r1422  %negacc = fneg double %acc23  %res = call double @llvm.experimental.constrained.fma.f64 (24                        double %f1, double %f2, double %negacc,25                        metadata !"round.dynamic",26                        metadata !"fpexcept.strict") #027  %negres = fneg double %res28  ret double %negres29}30 31define float @f3(float %f1, float %f2, float %acc) #0 {32; CHECK-LABEL: f3:33; CHECK: wfnmasb %f0, %f0, %f2, %f434; CHECK: br %r1435  %res = call float @llvm.experimental.constrained.fma.f32 (36                        float %f1, float %f2, float %acc,37                        metadata !"round.dynamic",38                        metadata !"fpexcept.strict") #039  %negres = fneg float %res40  ret float %negres41}42 43define float @f4(float %f1, float %f2, float %acc) #0 {44; CHECK-LABEL: f4:45; CHECK: wfnmssb %f0, %f0, %f2, %f446; CHECK: br %r1447  %negacc = fneg float %acc48  %res = call float @llvm.experimental.constrained.fma.f32 (49                        float %f1, float %f2, float %negacc,50                        metadata !"round.dynamic",51                        metadata !"fpexcept.strict") #052  %negres = fneg float %res53  ret float %negres54}55 56attributes #0 = { strictfp }57