xref: /llvm-project/clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat-conversionfunc.c (revision f563bd74cb9a4f0d2d3eb49d35536b648361ec53)
1 // REQUIRES: powerpc-registered-target
2 // RUN: %clang_cc1 -O2 -triple powerpc64-unknown-linux-gnu \
3 // RUN:   -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s
4 // RUN: %clang_cc1 -O2 -triple powerpc64le-unknown-linux-gnu \
5 // RUN:   -emit-llvm %s -o - -target-cpu pwr8 | FileCheck %s
6 // RUN: %clang_cc1 -O2 -triple powerpc-unknown-aix \
7 // RUN:   -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s
8 // RUN: %clang_cc1 -O2 -triple powerpc64-unknown-aix \
9 // RUN:   -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s
10 
11 extern double da;
test_fcfid()12 double test_fcfid() {
13   // CHECK-LABEL: test_fcfid
14   // CHECK-NEXT: entry:
15   // CHECK: double @llvm.ppc.fcfid(double %0)
16   return __builtin_ppc_fcfid(da);
17 }
18 
test_xl_fcfid()19 double test_xl_fcfid() {
20   // CHECK-LABEL: test_xl_fcfid
21   // CHECK-NEXT: entry:
22   // CHECK: double @llvm.ppc.fcfid(double %0)
23   return __fcfid(da);
24 }
25 
test_fcfud()26 double test_fcfud() {
27   // CHECK-LABEL: test_fcfud
28   // CHECK-NEXT: entry:
29   // CHECK: double @llvm.ppc.fcfud(double %0)
30   return __builtin_ppc_fcfud(da);
31 }
32 
test_xl_fcfud()33 double test_xl_fcfud() {
34   // CHECK-LABEL: test_xl_fcfud
35   // CHECK-NEXT: entry:
36   // CHECK: double @llvm.ppc.fcfud(double %0)
37   return __fcfud(da);
38 }
39 
test_fctid()40 double test_fctid() {
41   // CHECK-LABEL: test_fctid
42   // CHECK-NEXT: entry:
43   // CHECK: double @llvm.ppc.fctid(double %0)
44   return __builtin_ppc_fctid(da);
45 }
46 
test_xl_fctid()47 double test_xl_fctid() {
48   // CHECK-LABEL: test_xl_fctid
49   // CHECK-NEXT: entry:
50   // CHECK: double @llvm.ppc.fctid(double %0)
51   return __fctid(da);
52 }
53 
test_fctidz()54 double test_fctidz() {
55   // CHECK-LABEL: test_fctidz
56   // CHECK-NEXT: entry:
57   // CHECK: double @llvm.ppc.fctidz(double %0)
58   return __builtin_ppc_fctidz(da);
59 }
60 
test_xl_fctidz()61 double test_xl_fctidz() {
62   // CHECK-LABEL: test_xl_fctidz
63   // CHECK-NEXT: entry:
64   // CHECK: double @llvm.ppc.fctidz(double %0)
65   return __fctidz(da);
66 }
67 
test_fctiw()68 double test_fctiw() {
69   // CHECK-LABEL: test_fctiw
70   // CHECK-NEXT: entry:
71   // CHECK: double @llvm.ppc.fctiw(double %0)
72   return __builtin_ppc_fctiw(da);
73 }
74 
test_xl_fctiw()75 double test_xl_fctiw() {
76   // CHECK-LABEL: test_xl_fctiw
77   // CHECK-NEXT: entry:
78   // CHECK: double @llvm.ppc.fctiw(double %0)
79   return __fctiw(da);
80 }
81 
test_fctiwz()82 double test_fctiwz() {
83   // CHECK-LABEL: test_fctiwz
84   // CHECK-NEXT: entry:
85   // CHECK: double @llvm.ppc.fctiwz(double %0)
86   return __builtin_ppc_fctiwz(da);
87 }
88 
test_xl_fctiwz()89 double test_xl_fctiwz() {
90   // CHECK-LABEL: test_xl_fctiwz
91   // CHECK-NEXT: entry:
92   // CHECK: double @llvm.ppc.fctiwz(double %0)
93   return __fctiwz(da);
94 }
95 
test_fctudz()96 double test_fctudz() {
97   // CHECK-LABEL: test_fctudz
98   // CHECK-NEXT: entry:
99   // CHECK: double @llvm.ppc.fctudz(double %0)
100   return __builtin_ppc_fctudz(da);
101 }
102 
test_xl_fctudz()103 double test_xl_fctudz() {
104   // CHECK-LABEL: test_xl_fctudz
105   // CHECK-NEXT: entry:
106   // CHECK: double @llvm.ppc.fctudz(double %0)
107   return __fctudz(da);
108 }
109 
test_fctuwz()110 double test_fctuwz() {
111   // CHECK-LABEL: test_fctuwz
112   // CHECK-NEXT: entry:
113   // CHECK: double @llvm.ppc.fctuwz(double %0)
114   return __builtin_ppc_fctuwz(da);
115 }
116 
test_xl_fctuwz()117 double test_xl_fctuwz() {
118   // CHECK-LABEL: test_xl_fctuwz
119   // CHECK-NEXT: entry:
120   // CHECK: double @llvm.ppc.fctuwz(double %0)
121   return __fctuwz(da);
122 }
123