xref: /llvm-project/llvm/test/CodeGen/PowerPC/longdouble-pack.ll (revision 741aeda97d6327edd9905b21a5308fcee21bbefd)
1*741aeda9SQiu Chaofan; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*741aeda9SQiu Chaofan; RUN: llc -mtriple=powerpc64le-unknown-linux < %s | FileCheck %s
3*741aeda9SQiu Chaofan; RUN: llc -mtriple=powerpc64-ibm-aix-xcoff < %s | FileCheck %s
4*741aeda9SQiu Chaofan
5*741aeda9SQiu Chaofandefine double @ldbl_1(ppc_fp128 %x) {
6*741aeda9SQiu Chaofan; CHECK-LABEL: ldbl_1:
7*741aeda9SQiu Chaofan; CHECK:       # %bb.0: # %entry
8*741aeda9SQiu Chaofan; CHECK-NEXT:    fmr 1, 2
9*741aeda9SQiu Chaofan; CHECK-NEXT:    blr
10*741aeda9SQiu Chaofanentry:
11*741aeda9SQiu Chaofan  %0 = call double @llvm.ppc.unpack.longdouble(ppc_fp128 %x, i32 0)
12*741aeda9SQiu Chaofan  ret double %0
13*741aeda9SQiu Chaofan}
14*741aeda9SQiu Chaofan
15*741aeda9SQiu Chaofandefine double @ldbl_2(ppc_fp128 %x) {
16*741aeda9SQiu Chaofan; CHECK-LABEL: ldbl_2:
17*741aeda9SQiu Chaofan; CHECK:       # %bb.0: # %entry
18*741aeda9SQiu Chaofan; CHECK-NEXT:    blr
19*741aeda9SQiu Chaofanentry:
20*741aeda9SQiu Chaofan  %0 = call double @llvm.ppc.unpack.longdouble(ppc_fp128 %x, i32 1)
21*741aeda9SQiu Chaofan  ret double %0
22*741aeda9SQiu Chaofan}
23*741aeda9SQiu Chaofan
24*741aeda9SQiu Chaofandefine ppc_fp128 @ldbl_pack(double %x, double %y) {
25*741aeda9SQiu Chaofan; CHECK-LABEL: ldbl_pack:
26*741aeda9SQiu Chaofan; CHECK:       # %bb.0: # %entry
27*741aeda9SQiu Chaofan; CHECK-NEXT:    blr
28*741aeda9SQiu Chaofanentry:
29*741aeda9SQiu Chaofan  %0 = call ppc_fp128 @llvm.ppc.pack.longdouble(double %x, double %y)
30*741aeda9SQiu Chaofan  ret ppc_fp128 %0
31*741aeda9SQiu Chaofan}
32*741aeda9SQiu Chaofan
33*741aeda9SQiu Chaofandeclare double @llvm.ppc.unpack.longdouble(ppc_fp128, i32)
34*741aeda9SQiu Chaofandeclare ppc_fp128 @llvm.ppc.pack.longdouble(double, double)
35