[OpenACC] Implement 'device_type' for 'data' construct
[llvm-project.git] / llvm / test / CodeGen / PowerPC / GlobalISel / float-integer-conv.ll
bloba495ed7617f41f19eec2e6008c741787144af9f9
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
3 ; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -global-isel  -ppc-vsr-nums-as-vr \
4 ; RUN:   -ppc-asm-full-reg-names -verify-machineinstrs -o - < %s | FileCheck %s
6 define i64 @fptosi_float_i64(float %i) {
7 ; CHECK-LABEL: fptosi_float_i64:
8 ; CHECK:       # %bb.0: # %entry
9 ; CHECK-NEXT:    xscvdpsxds f0, f1
10 ; CHECK-NEXT:    mffprd r3, f0
11 ; CHECK-NEXT:    blr
12 entry:
13   %conv = fptosi float %i to i64
14   ret i64 %conv
17 define i64 @fptosi_double_i64(double %i) {
18 ; CHECK-LABEL: fptosi_double_i64:
19 ; CHECK:       # %bb.0: # %entry
20 ; CHECK-NEXT:    xscvdpsxds f0, f1
21 ; CHECK-NEXT:    mffprd r3, f0
22 ; CHECK-NEXT:    blr
23 entry:
24   %conv = fptosi double %i to i64
25   ret i64 %conv
28 define i64 @fptoui_float_i64(float %i) {
29 ; CHECK-LABEL: fptoui_float_i64:
30 ; CHECK:       # %bb.0: # %entry
31 ; CHECK-NEXT:    xscvdpuxds f0, f1
32 ; CHECK-NEXT:    mffprd r3, f0
33 ; CHECK-NEXT:    blr
34 entry:
35   %conv = fptoui float %i to i64
36   ret i64 %conv
39 define i64 @fptoui_double_i64(double %i) {
40 ; CHECK-LABEL: fptoui_double_i64:
41 ; CHECK:       # %bb.0: # %entry
42 ; CHECK-NEXT:    xscvdpuxds f0, f1
43 ; CHECK-NEXT:    mffprd r3, f0
44 ; CHECK-NEXT:    blr
45 entry:
46   %conv = fptoui double %i to i64
47   ret i64 %conv
50 define float @sitofp_i64_float(i64 %i) {
51 ; CHECK-LABEL: sitofp_i64_float:
52 ; CHECK:       # %bb.0: # %entry
53 ; CHECK-NEXT:    mtfprd f0, r3
54 ; CHECK-NEXT:    xscvsxdsp f1, f0
55 ; CHECK-NEXT:    blr
56 entry:
57   %conv = sitofp i64 %i to float
58   ret float %conv
61 define double @sitofp_i64_double(i64 %i) {
62 ; CHECK-LABEL: sitofp_i64_double:
63 ; CHECK:       # %bb.0: # %entry
64 ; CHECK-NEXT:    mtfprd f0, r3
65 ; CHECK-NEXT:    xscvsxddp f1, f0
66 ; CHECK-NEXT:    blr
67 entry:
68   %conv = sitofp i64 %i to double
69   ret double %conv
72 define float @uitofp_i64_float(i64 %i) {
73 ; CHECK-LABEL: uitofp_i64_float:
74 ; CHECK:       # %bb.0: # %entry
75 ; CHECK-NEXT:    mtfprd f0, r3
76 ; CHECK-NEXT:    xscvuxdsp f1, f0
77 ; CHECK-NEXT:    blr
78 entry:
79   %conv = uitofp i64 %i to float
80   ret float %conv
83 define double @uitofp_i64_double(i64 %i) {
84 ; CHECK-LABEL: uitofp_i64_double:
85 ; CHECK:       # %bb.0: # %entry
86 ; CHECK-NEXT:    mtfprd f0, r3
87 ; CHECK-NEXT:    xscvuxddp f1, f0
88 ; CHECK-NEXT:    blr
89 entry:
90   %conv = uitofp i64 %i to double
91   ret double %conv