blob: 61c46ac2bc0316836254996e9f98704e0d463fd8 [file] [log] [blame]
Tom Stellard49f8bfd2015-01-06 18:00:21 +00001; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
Marek Olsak75170772015-01-27 17:27:15 +00002; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
Matt Arsenault76723d72015-01-16 22:11:00 +00003; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=R600 -check-prefix=FUNC %s
Matt Arsenault41e2f2b2014-02-24 21:01:28 +00004
Matt Arsenault76723d72015-01-16 22:11:00 +00005; FUNC-LABEL: {{^}}floor_f32:
6; SI: v_floor_f32_e32
7; R600: FLOOR
8define 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
Matt Arsenault41e2f2b2014-02-24 21:01:28 +000011 ret void
12}
13
Matt Arsenault76723d72015-01-16 22:11:00 +000014; FUNC-LABEL: {{^}}floor_v2f32:
15; SI: v_floor_f32_e32
16; SI: v_floor_f32_e32
17
Matt Arsenault76723d72015-01-16 22:11:00 +000018define 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
Matt Arsenault41e2f2b2014-02-24 21:01:28 +000021 ret void
22}
23
Matt Arsenault76723d72015-01-16 22:11:00 +000024; 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
Matt Arsenault41e2f2b2014-02-24 21:01:28 +000029
Matt Arsenault76723d72015-01-16 22:11:00 +000030; R600: FLOOR
31; R600: FLOOR
32; R600: FLOOR
33; R600: FLOOR
34define 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
Matt Arsenault41e2f2b2014-02-24 21:01:28 +000037 ret void
38}
39
Matt Arsenault76723d72015-01-16 22:11:00 +000040; Function Attrs: nounwind readonly
41declare float @llvm.floor.f32(float) #0
Matt Arsenault41e2f2b2014-02-24 21:01:28 +000042
Matt Arsenault76723d72015-01-16 22:11:00 +000043; Function Attrs: nounwind readonly
44declare <2 x float> @llvm.floor.v2f32(<2 x float>) #0
45
46; Function Attrs: nounwind readonly
47declare <4 x float> @llvm.floor.v4f32(<4 x float>) #0
48
Matt Arsenault4843f192015-01-18 19:30:32 +000049attributes #0 = { nounwind readnone }