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