brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 3201b07 Raw
100 lines · plain
1; Test f128 floating-point conversion to/from integers on z14.2;3; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s4 5; Test signed i32->f128.6define void @f1(i32 %i, ptr %dst) {7; CHECK-LABEL: f1:8; CHECK: cxfbr %f0, %r29; CHECK: vmrhg %v0, %v0, %v210; CHECK: vst %v0, 0(%r3)11; CHECK: br %r1412  %conv = sitofp i32 %i to fp12813  store fp128 %conv, ptr %dst14  ret void15}16 17; Test signed i64->f128.18define void @f2(i64 %i, ptr %dst) {19; CHECK-LABEL: f2:20; CHECK: cxgbr %f0, %r221; CHECK: vmrhg %v0, %v0, %v222; CHECK: vst %v0, 0(%r3)23; CHECK: br %r1424  %conv = sitofp i64 %i to fp12825  store fp128 %conv, ptr %dst26  ret void27}28 29; Test unsigned i32->f128.30define void @f3(i32 %i, ptr %dst) {31; CHECK-LABEL: f3:32; CHECK: cxlfbr %f0, 0, %r2, 033; CHECK: vmrhg %v0, %v0, %v234; CHECK: vst %v0, 0(%r3)35; CHECK: br %r1436  %conv = uitofp i32 %i to fp12837  store fp128 %conv, ptr %dst38  ret void39}40 41; Test unsigned i64->f128.42define void @f4(i64 %i, ptr %dst) {43; CHECK-LABEL: f4:44; CHECK: cxlgbr %f0, 0, %r2, 045; CHECK: vmrhg %v0, %v0, %v246; CHECK: vst %v0, 0(%r3)47; CHECK: br %r1448  %conv = uitofp i64 %i to fp12849  store fp128 %conv, ptr %dst50  ret void51}52 53; Test signed f128->i32.54define i32 @f5(ptr %src) {55; CHECK-LABEL: f5:56; CHECK: vl %v0, 0(%r2)57; CHECK: vrepg %v2, %v0, 158; CHECK: cfxbr %r2, 5, %f059; CHECK: br %r1460  %f = load fp128, ptr %src61  %conv = fptosi fp128 %f to i3262  ret i32 %conv63}64 65; Test signed f128->i64.66define i64 @f6(ptr %src) {67; CHECK-LABEL: f6:68; CHECK: vl %v0, 0(%r2)69; CHECK: vrepg %v2, %v0, 170; CHECK: cgxbr %r2, 5, %f071; CHECK: br %r1472  %f = load fp128, ptr %src73  %conv = fptosi fp128 %f to i6474  ret i64 %conv75}76 77; Test unsigned f128->i32.78define i32 @f7(ptr %src) {79; CHECK-LABEL: f7:80; CHECK: vl %v0, 0(%r2)81; CHECK: vrepg %v2, %v0, 182; CHECK: clfxbr %r2, 5, %f0, 083; CHECK: br %r1484  %f = load fp128, ptr %src85  %conv = fptoui fp128 %f to i3286  ret i32 %conv87}88 89; Test unsigned f128->i64.90define i64 @f8(ptr %src) {91; CHECK-LABEL: f8:92; CHECK: vl %v0, 0(%r2)93; CHECK: vrepg %v2, %v0, 194; CHECK: clgxbr %r2, 5, %f0, 095; CHECK: br %r1496  %f = load fp128, ptr %src97  %conv = fptoui fp128 %f to i6498  ret i64 %conv99}100