[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / PowerPC / fp128-libcalls.ll
blob9d875c854e3208f1fe925a1b4bf03e7b33c6463f
1 ; RUN: llc < %s -O2 -mtriple=powerpc-linux-musl | FileCheck %s
2 ; RUN: llc < %s -O2 -mtriple=powerpc64-linux-musl | FileCheck %s
3 ; RUN: llc < %s -O2 -mtriple=powerpc64le-linux-musl | FileCheck %s
5 define fp128 @addkf3(fp128 %a, fp128 %b) {
6 ; CHECK-LABEL: addkf3:
7 ; CHECK: __addkf3
8   %1 = fadd fp128 %a, %b
9   ret fp128 %1
12 define fp128 @subkf3(fp128 %a, fp128 %b) {
13 ; CHECK-LABEL: subkf3:
14 ; CHECK: __subkf3
15   %1 = fsub fp128 %a, %b
16   ret fp128 %1
19 define fp128 @mulkf3(fp128 %a, fp128 %b) {
20 ; CHECK-LABEL: mulkf3:
21 ; CHECK: __mulkf3
22   %1 = fmul fp128 %a, %b
23   ret fp128 %1
26 define fp128 @divkf3(fp128 %a, fp128 %b) {
27 ; CHECK-LABEL: divkf3:
28 ; CHECK: __divkf3
29   %1 = fdiv fp128 %a, %b
30   ret fp128 %1
33 define fp128 @extendsfkf2(float %a) {
34 ; CHECK-LABEL: extendsfkf2:
35 ; CHECK: __extendsfkf2
36   %1 = fpext float %a to fp128
37   ret fp128 %1
40 define fp128 @extenddfkf2(double %a) {
41 ; CHECK-LABEL: extenddfkf2:
42 ; CHECK: __extenddfkf2
43   %1 = fpext double %a to fp128
44   ret fp128 %1
47 define float @trunckfsf2(fp128 %a) {
48 ; CHECK-LABEL: trunckfsf2:
49 ; CHECK: __trunckfsf2
50   %1 = fptrunc fp128 %a to float
51   ret float %1
54 define double @trunckfdf2(fp128 %a) {
55 ; CHECK-LABEL: trunckfdf2:
56 ; CHECK: __trunckfdf2
57   %1 = fptrunc fp128 %a to double
58   ret double %1
61 define i32 @fixkfsi(fp128 %a) {
62 ; CHECK-LABEL: fixkfsi:
63 ; CHECK: __fixkfsi
64   %1 = fptosi fp128 %a to i32
65   ret i32 %1
68 define i64 @fixkfdi(fp128 %a) {
69 ; CHECK-LABEL: fixkfdi:
70 ; CHECK: __fixkfdi
71   %1 = fptosi fp128 %a to i64
72   ret i64 %1
75 define i32 @fixunskfsi(fp128 %a) {
76 ; CHECK-LABEL: fixunskfsi:
77 ; CHECK: __fixunskfsi
78   %1 = fptoui fp128 %a to i32
79   ret i32 %1
82 define i64 @fixunskfdi(fp128 %a) {
83 ; CHECK-LABEL: fixunskfdi:
84 ; CHECK: __fixunskfdi
85   %1 = fptoui fp128 %a to i64
86   ret i64 %1
89 define fp128 @floatsikf(i32 %a) {
90 ; CHECK-LABEL: floatsikf:
91 ; CHECK: __floatsikf
92   %1 = sitofp i32 %a to fp128
93   ret fp128 %1
96 define fp128 @floatdikf(i64 %a) {
97 ; CHECK-LABEL: floatdikf:
98 ; CHECK: __floatdikf
99   %1 = sitofp i64 %a to fp128
100   ret fp128 %1
103 define fp128 @floatunsikf(i32 %a) {
104 ; CHECK-LABEL: floatunsikf:
105 ; CHECK: __floatunsikf
106   %1 = uitofp i32 %a to fp128
107   ret fp128 %1
110 define fp128 @floatundikf(i64 %a) {
111 ; CHECK-LABEL: floatundikf:
112 ; CHECK: __floatundikf
113   %1 = uitofp i64 %a to fp128
114   ret fp128 %1
117 define i1 @test_eqkf2(fp128 %a, fp128 %b) {
118 ; CHECK-LABEL: test_eqkf2:
119 ; CHECK: __eqkf2
120   %1 = fcmp oeq fp128 %a, %b
121   ret i1 %1
124 define i1 @test_nekf2(fp128 %a, fp128 %b) {
125 ; CHECK-LABEL: test_nekf2:
126 ; CHECK: __nekf2
127   %1 = fcmp une fp128 %a, %b
128   ret i1 %1
131 define i1 @test_gekf2(fp128 %a, fp128 %b) {
132 ; CHECK-LABEL: test_gekf2:
133 ; CHECK: __gekf2
134   %1 = fcmp oge fp128 %a, %b
135   ret i1 %1
138 define i1 @test_ltkf2(fp128 %a, fp128 %b) {
139 ; CHECK-LABEL: test_ltkf2:
140 ; CHECK: __ltkf2
141   %1 = fcmp olt fp128 %a, %b
142   ret i1 %1
145 define i1 @test_lekf2(fp128 %a, fp128 %b) {
146 ; CHECK-LABEL: test_lekf2:
147 ; CHECK: __lekf2
148   %1 = fcmp ole fp128 %a, %b
149   ret i1 %1
152 define i1 @test_gtkf2(fp128 %a, fp128 %b) {
153 ; CHECK-LABEL: test_gtkf2:
154 ; CHECK: __gtkf2
155   %1 = fcmp ogt fp128 %a, %b
156   ret i1 %1
159 define i1 @test_unordkf2(fp128 %a, fp128 %b) {
160 ; CHECK-LABEL: test_unordkf2:
161 ; CHECK: __unordkf2
162   %1 = fcmp uno fp128 %a, %b
163   ret i1 %1