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