Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / SystemZ / fp-conv-20.ll
blob8006a8beb0789fa5edf9f67eed8301980433da64
1 ; Test floating-point conversion to/from 128-bit integers.
3 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
4 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
6 ; Test signed i128->f128.
7 define fp128 @f1(i128 %i) {
8 ; CHECK-LABEL: f1:
9 ; CHECK: brasl %r14, __floattitf@PLT
10 ; CHECK: br %r14
11   %conv = sitofp i128 %i to fp128
12   ret fp128 %conv
15 ; Test signed i128->f64.
16 define double @f2(i128 %i) {
17 ; CHECK-LABEL: f2:
18 ; CHECK: brasl %r14, __floattidf@PLT
19 ; CHECK: br %r14
20   %conv = sitofp i128 %i to double
21   ret double %conv
24 ; Test signed i128->f32.
25 define float @f3(i128 %i) {
26 ; CHECK-LABEL: f3:
27 ; CHECK: brasl %r14, __floattisf@PLT
28 ; CHECK: br %r14
29   %conv = sitofp i128 %i to float
30   ret float %conv
33 ; Test unsigned i128->f128.
34 define fp128 @f4(i128 %i) {
35 ; CHECK-LABEL: f4:
36 ; CHECK: brasl %r14, __floatuntitf@PLT
37 ; CHECK: br %r14
38   %conv = uitofp i128 %i to fp128
39   ret fp128 %conv
42 ; Test unsigned i128->f64.
43 define double @f5(i128 %i) {
44 ; CHECK-LABEL: f5:
45 ; CHECK: brasl %r14, __floatuntidf@PLT
46 ; CHECK: br %r14
47   %conv = uitofp i128 %i to double
48   ret double %conv
51 ; Test unsigned i128->f32.
52 define float @f6(i128 %i) {
53 ; CHECK-LABEL: f6:
54 ; CHECK: brasl %r14, __floatuntisf@PLT
55 ; CHECK: br %r14
56   %conv = uitofp i128 %i to float
57   ret float %conv
60 ; Test signed f128->i128.
61 define i128 @f7(fp128 %f) {
62 ; CHECK-LABEL: f7:
63 ; CHECK: brasl %r14, __fixtfti@PLT
64 ; CHECK: br %r14
65   %conv = fptosi fp128 %f to i128
66   ret i128 %conv
69 ; Test signed f64->i128.
70 define i128 @f8(double %f) {
71 ; CHECK-LABEL: f8:
72 ; CHECK: brasl %r14, __fixdfti@PLT
73 ; CHECK: br %r14
74   %conv = fptosi double %f to i128
75   ret i128 %conv
78 ; Test signed f9->i128.
79 define i128 @f9(float %f) {
80 ; CHECK-LABEL: f9:
81 ; CHECK: brasl %r14, __fixsfti@PLT
82 ; CHECK: br %r14
83   %conv = fptosi float %f to i128
84   ret i128 %conv
87 ; Test unsigned f128->i128.
88 define i128 @f10(fp128 %f) {
89 ; CHECK-LABEL: f10:
90 ; CHECK: brasl %r14, __fixunstfti@PLT
91 ; CHECK: br %r14
92   %conv = fptoui fp128 %f to i128
93   ret i128 %conv
96 ; Test unsigned f64->i128.
97 define i128 @f11(double %f) {
98 ; CHECK-LABEL: f11:
99 ; CHECK: brasl %r14, __fixunsdfti@PLT
100 ; CHECK: br %r14
101   %conv = fptoui double %f to i128
102   ret i128 %conv
105 ; Test unsigned f32->i128.
106 define i128 @f12(float %f) {
107 ; CHECK-LABEL: f12:
108 ; CHECK: brasl %r14, __fixunssfti@PLT
109 ; CHECK: br %r14
110   %conv = fptoui float %f to i128
111   ret i128 %conv