brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · d2a568e Raw
59 lines · plain
1; Test strict conversions of signed i64s to floating-point values.2;3; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s4 5declare half @llvm.experimental.constrained.sitofp.f16.i64(i64, metadata, metadata)6declare float @llvm.experimental.constrained.sitofp.f32.i64(i64, metadata, metadata)7declare double @llvm.experimental.constrained.sitofp.f64.i64(i64, metadata, metadata)8declare fp128 @llvm.experimental.constrained.sitofp.f128.i64(i64, metadata, metadata)9 10; Test i64->f16.11define half @f0(i64 %i) #0 {12; CHECK-LABEL: f0:13; CHECK: cegbr %f0, %r214; CHECK-NEXT: brasl %r14, __truncsfhf2@PLT15; CHECK: br %r1416  %conv = call half @llvm.experimental.constrained.sitofp.f16.i64(i64 %i,17                                               metadata !"round.dynamic",18                                               metadata !"fpexcept.strict") #019  ret half %conv20}21 22; Test i64->f32.23define float @f1(i64 %i) #0 {24; CHECK-LABEL: f1:25; CHECK: cegbr %f0, %r226; CHECK: br %r1427  %conv = call float @llvm.experimental.constrained.sitofp.f32.i64(i64 %i,28                                               metadata !"round.dynamic",29                                               metadata !"fpexcept.strict") #030  ret float %conv31}32 33; Test i64->f64.34define double @f2(i64 %i) #0 {35; CHECK-LABEL: f2:36; CHECK: cdgbr %f0, %r237; CHECK: br %r1438  %conv = call double @llvm.experimental.constrained.sitofp.f64.i64(i64 %i,39                                               metadata !"round.dynamic",40                                               metadata !"fpexcept.strict") #041  ret double %conv42}43 44; Test i64->f128.45define void @f3(i64 %i, ptr %dst) #0 {46; CHECK-LABEL: f3:47; CHECK: cxgbr %f0, %r248; CHECK: std %f0, 0(%r3)49; CHECK: std %f2, 8(%r3)50; CHECK: br %r1451  %conv = call fp128 @llvm.experimental.constrained.sitofp.f128.i64(i64 %i,52                                               metadata !"round.dynamic",53                                               metadata !"fpexcept.strict") #054  store fp128 %conv, ptr %dst55  ret void56}57 58attributes #0 = { strictfp }59