blob: f4cf7fc293d3e9f860f0ba741664240126c3fb3a [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 Arsenault8e34ecb2014-06-19 04:24:43 +00003; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
4
5declare float @llvm.AMDGPU.fract.f32(float) nounwind readnone
6
7; Legacy name
8declare float @llvm.AMDIL.fraction.f32(float) nounwind readnone
9
Tom Stellard79243d92014-10-01 17:15:17 +000010; FUNC-LABEL: {{^}}fract_f32:
Tom Stellard326d6ec2014-11-05 14:50:53 +000011; SI: v_fract_f32
Matt Arsenault8e34ecb2014-06-19 04:24:43 +000012; EG: FRACT
13define void @fract_f32(float addrspace(1)* %out, float addrspace(1)* %src) nounwind {
David Blaikiea79ac142015-02-27 21:17:42 +000014 %val = load float, float addrspace(1)* %src, align 4
Matt Arsenault8e34ecb2014-06-19 04:24:43 +000015 %fract = call float @llvm.AMDGPU.fract.f32(float %val) nounwind readnone
16 store float %fract, float addrspace(1)* %out, align 4
17 ret void
18}
19
Tom Stellard79243d92014-10-01 17:15:17 +000020; FUNC-LABEL: {{^}}fract_f32_legacy_amdil:
Tom Stellard326d6ec2014-11-05 14:50:53 +000021; SI: v_fract_f32
Matt Arsenault8e34ecb2014-06-19 04:24:43 +000022; EG: FRACT
23define void @fract_f32_legacy_amdil(float addrspace(1)* %out, float addrspace(1)* %src) nounwind {
David Blaikiea79ac142015-02-27 21:17:42 +000024 %val = load float, float addrspace(1)* %src, align 4
Matt Arsenault8e34ecb2014-06-19 04:24:43 +000025 %fract = call float @llvm.AMDIL.fraction.f32(float %val) nounwind readnone
26 store float %fract, float addrspace(1)* %out, align 4
27 ret void
28}