1 ; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s 2 ; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s 3 ; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s 4 5 ; FUNC-LABEL: {{^}}floor_f32: 6 ; SI: v_floor_f32_e32 7 ; R600: FLOOR 8 define void @floor_f32(float addrspace(1)* %out, float %in) { 9 %tmp = call float @llvm.floor.f32(float %in) #0 10 store float %tmp, float addrspace(1)* %out 11 ret void 12 } 13 14 ; FUNC-LABEL: {{^}}floor_v2f32: 15 ; SI: v_floor_f32_e32 16 ; SI: v_floor_f32_e32 17 18 define void @floor_v2f32(<2 x float> addrspace(1)* %out, <2 x float> %in) { 19 %tmp = call <2 x float> @llvm.floor.v2f32(<2 x float> %in) #0 20 store <2 x float> %tmp, <2 x float> addrspace(1)* %out 21 ret void 22 } 23 24 ; FUNC-LABEL: {{^}}floor_v4f32: 25 ; SI: v_floor_f32_e32 26 ; SI: v_floor_f32_e32 27 ; SI: v_floor_f32_e32 28 ; SI: v_floor_f32_e32 29 30 ; R600: FLOOR 31 ; R600: FLOOR 32 ; R600: FLOOR 33 ; R600: FLOOR 34 define void @floor_v4f32(<4 x float> addrspace(1)* %out, <4 x float> %in) { 35 %tmp = call <4 x float> @llvm.floor.v4f32(<4 x float> %in) #0 36 store <4 x float> %tmp, <4 x float> addrspace(1)* %out 37 ret void 38 } 39 40 ; Function Attrs: nounwind readonly 41 declare float @llvm.floor.f32(float) #0 42 43 ; Function Attrs: nounwind readonly 44 declare <2 x float> @llvm.floor.v2f32(<2 x float>) #0 45 46 ; Function Attrs: nounwind readonly 47 declare <4 x float> @llvm.floor.v4f32(<4 x float>) #0 48 49 attributes #0 = { nounwind readnone } 50