summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AMDGPU/fmed3.ll
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-01-28 20:53:48 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-01-28 20:53:48 +0000
commit5b39b34ca53da637cbf7bfa1f3ff8351bc97fdd6 (patch)
tree65a6a5a6da4ac98713f0e77e929bd4bd45c2e516 /llvm/test/CodeGen/AMDGPU/fmed3.ll
parentf639c32739b7ddff3fcf5cc242027bbbe2b6fba9 (diff)
downloadbcm5719-llvm-5b39b34ca53da637cbf7bfa1f3ff8351bc97fdd6.tar.gz
bcm5719-llvm-5b39b34ca53da637cbf7bfa1f3ff8351bc97fdd6.zip
AMDGPU: Match fmed3 patterns with legacy fmin/fmax
llvm-svn: 259090
Diffstat (limited to 'llvm/test/CodeGen/AMDGPU/fmed3.ll')
-rw-r--r--llvm/test/CodeGen/AMDGPU/fmed3.ll23
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/fmed3.ll b/llvm/test/CodeGen/AMDGPU/fmed3.ll
index c02c0844024..409431102cd 100644
--- a/llvm/test/CodeGen/AMDGPU/fmed3.ll
+++ b/llvm/test/CodeGen/AMDGPU/fmed3.ll
@@ -126,6 +126,29 @@ define void @v_test_fmed3_r_i_i_no_nans_f32(float addrspace(1)* %out, float addr
ret void
}
+; GCN-LABEL: {{^}}v_test_legacy_fmed3_r_i_i_f32:
+; NOSNAN: v_med3_f32 v{{[0-9]+}}, v{{[0-9]+}}, 2.0, 4.0
+
+; SNAN: v_max_f32_e32 v{{[0-9]+}}, 2.0, v{{[0-9]+}}
+; SNAN: v_min_f32_e32 v{{[0-9]+}}, 4.0, v{{[0-9]+}}
+define void @v_test_legacy_fmed3_r_i_i_f32(float addrspace(1)* %out, float addrspace(1)* %aptr) #1 {
+ %tid = call i32 @llvm.r600.read.tidig.x()
+ %gep0 = getelementptr float, float addrspace(1)* %aptr, i32 %tid
+ %outgep = getelementptr float, float addrspace(1)* %out, i32 %tid
+ %a = load float, float addrspace(1)* %gep0
+
+ ; fmax_legacy
+ %cmp0 = fcmp ule float %a, 2.0
+ %max = select i1 %cmp0, float 2.0, float %a
+
+ ; fmin_legacy
+ %cmp1 = fcmp uge float %max, 4.0
+ %med = select i1 %cmp1, float 4.0, float %max
+
+ store float %med, float addrspace(1)* %outgep
+ ret void
+}
+
attributes #0 = { nounwind readnone }
attributes #1 = { nounwind "unsafe-fp-math"="false" "no-nans-fp-math"="false" }
attributes #2 = { nounwind "unsafe-fp-math"="false" "no-nans-fp-math"="true" }
OpenPOWER on IntegriCloud