22 lines
733 B
LLVM
22 lines
733 B
LLVM
|
; RUN: opt -mtriple=amdgcn--amdpal -S -instcombine <%s | FileCheck --check-prefixes=GCN %s
|
||
|
|
||
|
; Check that sin/cos is not folded to tan on amdgcn.
|
||
|
|
||
|
; GCN-LABEL: define amdgpu_ps float @llpc.shader.FS.main
|
||
|
; GCN: call float @llvm.sin.f32
|
||
|
; GCN: call float @llvm.cos.f32
|
||
|
|
||
|
declare float @llvm.sin.f32(float) #0
|
||
|
declare float @llvm.cos.f32(float) #0
|
||
|
|
||
|
define amdgpu_ps float @llpc.shader.FS.main(float %arg) {
|
||
|
.entry:
|
||
|
%tmp32 = call float @llvm.sin.f32(float %arg)
|
||
|
%tmp33 = call float @llvm.cos.f32(float %arg)
|
||
|
%tmp34 = fdiv reassoc nnan nsz arcp contract float 1.000000e+00, %tmp33
|
||
|
%tmp35 = fmul reassoc nnan nsz arcp contract float %tmp32, %tmp34
|
||
|
ret float %tmp35
|
||
|
}
|
||
|
|
||
|
attributes #0 = { nounwind readnone speculatable willreturn }
|