blob: ffc626be2dead1413e2950b67909b6f346f16b8c [file] [log] [blame]
Ehsan Amiria538b0f2016-08-03 18:17:35 +00001; RUN: llc -verify-machineinstrs -mcpu=a2 < %s | FileCheck %s -check-prefix=FPCVT
2; RUN: llc -verify-machineinstrs -mcpu=ppc64 < %s | FileCheck %s -check-prefix=PPC64
Hal Finkel5efb9182015-01-06 06:01:57 +00003target datalayout = "E-m:e-i64:64-n32:64"
4target triple = "powerpc64-unknown-linux-gnu"
5
6; Function Attrs: nounwind readnone
7define float @fool(float %X) #0 {
8entry:
9 %conv = fptosi float %X to i64
10 %conv1 = sitofp i64 %conv to float
11 ret float %conv1
12
13; FPCVT-LABEL: @fool
Sanjay Patel3d453ad2018-04-20 15:07:55 +000014; FPCVT: friz 1, 1
Hal Finkel5efb9182015-01-06 06:01:57 +000015; FPCVT: blr
16
17; PPC64-LABEL: @fool
18; PPC64: fctidz [[REG1:[0-9]+]], 1
19; PPC64: fcfid [[REG2:[0-9]+]], [[REG1]]
20; PPC64: frsp 1, [[REG2]]
21; PPC64: blr
22}
23
24; Function Attrs: nounwind readnone
25define double @foodl(double %X) #0 {
26entry:
27 %conv = fptosi double %X to i64
28 %conv1 = sitofp i64 %conv to double
29 ret double %conv1
30
31; FPCVT-LABEL: @foodl
Sanjay Patel3d453ad2018-04-20 15:07:55 +000032; FPCVT: friz 1, 1
Hal Finkel5efb9182015-01-06 06:01:57 +000033; FPCVT: blr
34
35; PPC64-LABEL: @foodl
36; PPC64: fctidz [[REG1:[0-9]+]], 1
37; PPC64: fcfid 1, [[REG1]]
38; PPC64: blr
39}
40
41; Function Attrs: nounwind readnone
42define float @fooul(float %X) #0 {
43entry:
44 %conv = fptoui float %X to i64
45 %conv1 = uitofp i64 %conv to float
46 ret float %conv1
47
48; FPCVT-LABEL: @fooul
Sanjay Patel3d453ad2018-04-20 15:07:55 +000049; FPCVT: friz 1, 1
Hal Finkel5efb9182015-01-06 06:01:57 +000050; FPCVT: blr
51}
52
53; Function Attrs: nounwind readnone
54define double @fooudl(double %X) #0 {
55entry:
56 %conv = fptoui double %X to i64
57 %conv1 = uitofp i64 %conv to double
58 ret double %conv1
59
60; FPCVT-LABEL: @fooudl
Sanjay Patel3d453ad2018-04-20 15:07:55 +000061; FPCVT: friz 1, 1
Hal Finkel5efb9182015-01-06 06:01:57 +000062; FPCVT: blr
63}
64
Sanjay Pateld052de82018-06-27 18:16:40 +000065attributes #0 = { nounwind readnone "no-signed-zeros-fp-math"="true" }
Hal Finkel5efb9182015-01-06 06:01:57 +000066