xref: /llvm-project/llvm/test/CodeGen/PowerPC/fp128-libcalls.ll (revision 335f955dc4942d6956e759b8c2686c52914c36b6)
1*335f955dSFangrui Song; RUN: llc < %s -O2 -mtriple=powerpc-linux-musl | FileCheck %s
2*335f955dSFangrui Song; RUN: llc < %s -O2 -mtriple=powerpc64-linux-musl | FileCheck %s
3*335f955dSFangrui Song; RUN: llc < %s -O2 -mtriple=powerpc64le-linux-musl | FileCheck %s
4*335f955dSFangrui Song
5*335f955dSFangrui Songdefine fp128 @addkf3(fp128 %a, fp128 %b) {
6*335f955dSFangrui Song; CHECK-LABEL: addkf3:
7*335f955dSFangrui Song; CHECK: __addkf3
8*335f955dSFangrui Song  %1 = fadd fp128 %a, %b
9*335f955dSFangrui Song  ret fp128 %1
10*335f955dSFangrui Song}
11*335f955dSFangrui Song
12*335f955dSFangrui Songdefine fp128 @subkf3(fp128 %a, fp128 %b) {
13*335f955dSFangrui Song; CHECK-LABEL: subkf3:
14*335f955dSFangrui Song; CHECK: __subkf3
15*335f955dSFangrui Song  %1 = fsub fp128 %a, %b
16*335f955dSFangrui Song  ret fp128 %1
17*335f955dSFangrui Song}
18*335f955dSFangrui Song
19*335f955dSFangrui Songdefine fp128 @mulkf3(fp128 %a, fp128 %b) {
20*335f955dSFangrui Song; CHECK-LABEL: mulkf3:
21*335f955dSFangrui Song; CHECK: __mulkf3
22*335f955dSFangrui Song  %1 = fmul fp128 %a, %b
23*335f955dSFangrui Song  ret fp128 %1
24*335f955dSFangrui Song}
25*335f955dSFangrui Song
26*335f955dSFangrui Songdefine fp128 @divkf3(fp128 %a, fp128 %b) {
27*335f955dSFangrui Song; CHECK-LABEL: divkf3:
28*335f955dSFangrui Song; CHECK: __divkf3
29*335f955dSFangrui Song  %1 = fdiv fp128 %a, %b
30*335f955dSFangrui Song  ret fp128 %1
31*335f955dSFangrui Song}
32*335f955dSFangrui Song
33*335f955dSFangrui Songdefine fp128 @extendsfkf2(float %a) {
34*335f955dSFangrui Song; CHECK-LABEL: extendsfkf2:
35*335f955dSFangrui Song; CHECK: __extendsfkf2
36*335f955dSFangrui Song  %1 = fpext float %a to fp128
37*335f955dSFangrui Song  ret fp128 %1
38*335f955dSFangrui Song}
39*335f955dSFangrui Song
40*335f955dSFangrui Songdefine fp128 @extenddfkf2(double %a) {
41*335f955dSFangrui Song; CHECK-LABEL: extenddfkf2:
42*335f955dSFangrui Song; CHECK: __extenddfkf2
43*335f955dSFangrui Song  %1 = fpext double %a to fp128
44*335f955dSFangrui Song  ret fp128 %1
45*335f955dSFangrui Song}
46*335f955dSFangrui Song
47*335f955dSFangrui Songdefine float @trunckfsf2(fp128 %a) {
48*335f955dSFangrui Song; CHECK-LABEL: trunckfsf2:
49*335f955dSFangrui Song; CHECK: __trunckfsf2
50*335f955dSFangrui Song  %1 = fptrunc fp128 %a to float
51*335f955dSFangrui Song  ret float %1
52*335f955dSFangrui Song}
53*335f955dSFangrui Song
54*335f955dSFangrui Songdefine double @trunckfdf2(fp128 %a) {
55*335f955dSFangrui Song; CHECK-LABEL: trunckfdf2:
56*335f955dSFangrui Song; CHECK: __trunckfdf2
57*335f955dSFangrui Song  %1 = fptrunc fp128 %a to double
58*335f955dSFangrui Song  ret double %1
59*335f955dSFangrui Song}
60*335f955dSFangrui Song
61*335f955dSFangrui Songdefine i32 @fixkfsi(fp128 %a) {
62*335f955dSFangrui Song; CHECK-LABEL: fixkfsi:
63*335f955dSFangrui Song; CHECK: __fixkfsi
64*335f955dSFangrui Song  %1 = fptosi fp128 %a to i32
65*335f955dSFangrui Song  ret i32 %1
66*335f955dSFangrui Song}
67*335f955dSFangrui Song
68*335f955dSFangrui Songdefine i64 @fixkfdi(fp128 %a) {
69*335f955dSFangrui Song; CHECK-LABEL: fixkfdi:
70*335f955dSFangrui Song; CHECK: __fixkfdi
71*335f955dSFangrui Song  %1 = fptosi fp128 %a to i64
72*335f955dSFangrui Song  ret i64 %1
73*335f955dSFangrui Song}
74*335f955dSFangrui Song
75*335f955dSFangrui Songdefine i32 @fixunskfsi(fp128 %a) {
76*335f955dSFangrui Song; CHECK-LABEL: fixunskfsi:
77*335f955dSFangrui Song; CHECK: __fixunskfsi
78*335f955dSFangrui Song  %1 = fptoui fp128 %a to i32
79*335f955dSFangrui Song  ret i32 %1
80*335f955dSFangrui Song}
81*335f955dSFangrui Song
82*335f955dSFangrui Songdefine i64 @fixunskfdi(fp128 %a) {
83*335f955dSFangrui Song; CHECK-LABEL: fixunskfdi:
84*335f955dSFangrui Song; CHECK: __fixunskfdi
85*335f955dSFangrui Song  %1 = fptoui fp128 %a to i64
86*335f955dSFangrui Song  ret i64 %1
87*335f955dSFangrui Song}
88*335f955dSFangrui Song
89*335f955dSFangrui Songdefine fp128 @floatsikf(i32 %a) {
90*335f955dSFangrui Song; CHECK-LABEL: floatsikf:
91*335f955dSFangrui Song; CHECK: __floatsikf
92*335f955dSFangrui Song  %1 = sitofp i32 %a to fp128
93*335f955dSFangrui Song  ret fp128 %1
94*335f955dSFangrui Song}
95*335f955dSFangrui Song
96*335f955dSFangrui Songdefine fp128 @floatdikf(i64 %a) {
97*335f955dSFangrui Song; CHECK-LABEL: floatdikf:
98*335f955dSFangrui Song; CHECK: __floatdikf
99*335f955dSFangrui Song  %1 = sitofp i64 %a to fp128
100*335f955dSFangrui Song  ret fp128 %1
101*335f955dSFangrui Song}
102*335f955dSFangrui Song
103*335f955dSFangrui Songdefine fp128 @floatunsikf(i32 %a) {
104*335f955dSFangrui Song; CHECK-LABEL: floatunsikf:
105*335f955dSFangrui Song; CHECK: __floatunsikf
106*335f955dSFangrui Song  %1 = uitofp i32 %a to fp128
107*335f955dSFangrui Song  ret fp128 %1
108*335f955dSFangrui Song}
109*335f955dSFangrui Song
110*335f955dSFangrui Songdefine fp128 @floatundikf(i64 %a) {
111*335f955dSFangrui Song; CHECK-LABEL: floatundikf:
112*335f955dSFangrui Song; CHECK: __floatundikf
113*335f955dSFangrui Song  %1 = uitofp i64 %a to fp128
114*335f955dSFangrui Song  ret fp128 %1
115*335f955dSFangrui Song}
116*335f955dSFangrui Song
117*335f955dSFangrui Songdefine i1 @test_eqkf2(fp128 %a, fp128 %b) {
118*335f955dSFangrui Song; CHECK-LABEL: test_eqkf2:
119*335f955dSFangrui Song; CHECK: __eqkf2
120*335f955dSFangrui Song  %1 = fcmp oeq fp128 %a, %b
121*335f955dSFangrui Song  ret i1 %1
122*335f955dSFangrui Song}
123*335f955dSFangrui Song
124*335f955dSFangrui Songdefine i1 @test_nekf2(fp128 %a, fp128 %b) {
125*335f955dSFangrui Song; CHECK-LABEL: test_nekf2:
126*335f955dSFangrui Song; CHECK: __nekf2
127*335f955dSFangrui Song  %1 = fcmp une fp128 %a, %b
128*335f955dSFangrui Song  ret i1 %1
129*335f955dSFangrui Song}
130*335f955dSFangrui Song
131*335f955dSFangrui Songdefine i1 @test_gekf2(fp128 %a, fp128 %b) {
132*335f955dSFangrui Song; CHECK-LABEL: test_gekf2:
133*335f955dSFangrui Song; CHECK: __gekf2
134*335f955dSFangrui Song  %1 = fcmp oge fp128 %a, %b
135*335f955dSFangrui Song  ret i1 %1
136*335f955dSFangrui Song}
137*335f955dSFangrui Song
138*335f955dSFangrui Songdefine i1 @test_ltkf2(fp128 %a, fp128 %b) {
139*335f955dSFangrui Song; CHECK-LABEL: test_ltkf2:
140*335f955dSFangrui Song; CHECK: __ltkf2
141*335f955dSFangrui Song  %1 = fcmp olt fp128 %a, %b
142*335f955dSFangrui Song  ret i1 %1
143*335f955dSFangrui Song}
144*335f955dSFangrui Song
145*335f955dSFangrui Songdefine i1 @test_lekf2(fp128 %a, fp128 %b) {
146*335f955dSFangrui Song; CHECK-LABEL: test_lekf2:
147*335f955dSFangrui Song; CHECK: __lekf2
148*335f955dSFangrui Song  %1 = fcmp ole fp128 %a, %b
149*335f955dSFangrui Song  ret i1 %1
150*335f955dSFangrui Song}
151*335f955dSFangrui Song
152*335f955dSFangrui Songdefine i1 @test_gtkf2(fp128 %a, fp128 %b) {
153*335f955dSFangrui Song; CHECK-LABEL: test_gtkf2:
154*335f955dSFangrui Song; CHECK: __gtkf2
155*335f955dSFangrui Song  %1 = fcmp ogt fp128 %a, %b
156*335f955dSFangrui Song  ret i1 %1
157*335f955dSFangrui Song}
158*335f955dSFangrui Song
159*335f955dSFangrui Songdefine i1 @test_unordkf2(fp128 %a, fp128 %b) {
160*335f955dSFangrui Song; CHECK-LABEL: test_unordkf2:
161*335f955dSFangrui Song; CHECK: __unordkf2
162*335f955dSFangrui Song  %1 = fcmp uno fp128 %a, %b
163*335f955dSFangrui Song  ret i1 %1
164*335f955dSFangrui Song}
165