• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -march=r600 -mcpu=bonaire -verify-machineinstrs < %s | FileCheck -check-prefix=CI -check-prefix=FUNC %s
2; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
3
4; FUNC-LABEL: @rint_f64
5; CI: V_RNDNE_F64_e32
6
7; SI-DAG: V_ADD_F64
8; SI-DAG: V_ADD_F64
9; SI-DAG V_CMP_GT_F64_e64
10; SI: V_CNDMASK_B32
11; SI: V_CNDMASK_B32
12; SI: S_ENDPGM
13define void @rint_f64(double addrspace(1)* %out, double %in) {
14entry:
15  %0 = call double @llvm.rint.f64(double %in)
16  store double %0, double addrspace(1)* %out
17  ret void
18}
19
20; FUNC-LABEL: @rint_v2f64
21; CI: V_RNDNE_F64_e32
22; CI: V_RNDNE_F64_e32
23define void @rint_v2f64(<2 x double> addrspace(1)* %out, <2 x double> %in) {
24entry:
25  %0 = call <2 x double> @llvm.rint.v2f64(<2 x double> %in)
26  store <2 x double> %0, <2 x double> addrspace(1)* %out
27  ret void
28}
29
30; FUNC-LABEL: @rint_v4f64
31; CI: V_RNDNE_F64_e32
32; CI: V_RNDNE_F64_e32
33; CI: V_RNDNE_F64_e32
34; CI: V_RNDNE_F64_e32
35define void @rint_v4f64(<4 x double> addrspace(1)* %out, <4 x double> %in) {
36entry:
37  %0 = call <4 x double> @llvm.rint.v4f64(<4 x double> %in)
38  store <4 x double> %0, <4 x double> addrspace(1)* %out
39  ret void
40}
41
42
43declare double @llvm.rint.f64(double) #0
44declare <2 x double> @llvm.rint.v2f64(<2 x double>) #0
45declare <4 x double> @llvm.rint.v4f64(<4 x double>) #0
46