summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2015-03-13 16:43:48 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2015-03-13 16:43:48 +0000
commit314eac7477602e69c65423bfbb7d0a2107832c0e (patch)
tree0045f07e5449031dd86bd9ee62d2b37aaa09d361 /llvm/test
parente2a4b856d8da5d1119acffbd127f6ebe6db42677 (diff)
downloadbcm5719-llvm-314eac7477602e69c65423bfbb7d0a2107832c0e.tar.gz
bcm5719-llvm-314eac7477602e69c65423bfbb7d0a2107832c0e.zip
R600/SI: Add test for min / max with immediate
Make sure this isn't getting confused by canonicalizations of comparisons with a constant. llvm-svn: 232177
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/R600/max.ll18
-rw-r--r--llvm/test/CodeGen/R600/min.ll18
2 files changed, 36 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/R600/max.ll b/llvm/test/CodeGen/R600/max.ll
index e6ab96c0c5c..1aa9e688301 100644
--- a/llvm/test/CodeGen/R600/max.ll
+++ b/llvm/test/CodeGen/R600/max.ll
@@ -26,6 +26,24 @@ define void @s_test_imax_sge_i32(i32 addrspace(1)* %out, i32 %a, i32 %b) nounwin
ret void
}
+; FUNC-LABEL: {{^}}s_test_imax_sge_imm_i32:
+; SI: s_max_i32 {{s[0-9]+}}, {{s[0-9]+}}, 9
+define void @s_test_imax_sge_imm_i32(i32 addrspace(1)* %out, i32 %a) nounwind {
+ %cmp = icmp sge i32 %a, 9
+ %val = select i1 %cmp, i32 %a, i32 9
+ store i32 %val, i32 addrspace(1)* %out, align 4
+ ret void
+}
+
+; FUNC-LABEL: {{^}}s_test_imax_sgt_imm_i32:
+; SI: s_max_i32 {{s[0-9]+}}, {{s[0-9]+}}, 9
+define void @s_test_imax_sgt_imm_i32(i32 addrspace(1)* %out, i32 %a) nounwind {
+ %cmp = icmp sgt i32 %a, 9
+ %val = select i1 %cmp, i32 %a, i32 9
+ store i32 %val, i32 addrspace(1)* %out, align 4
+ ret void
+}
+
; FUNC-LABEL: @v_test_imax_sgt_i32
; SI: v_max_i32_e32
define void @v_test_imax_sgt_i32(i32 addrspace(1)* %out, i32 addrspace(1)* %aptr, i32 addrspace(1)* %bptr) nounwind {
diff --git a/llvm/test/CodeGen/R600/min.ll b/llvm/test/CodeGen/R600/min.ll
index d1febf563fe..275e9a7d899 100644
--- a/llvm/test/CodeGen/R600/min.ll
+++ b/llvm/test/CodeGen/R600/min.ll
@@ -50,6 +50,24 @@ define void @s_test_imin_slt_i32(i32 addrspace(1)* %out, i32 %a, i32 %b) nounwin
ret void
}
+; FUNC-LABEL: {{^}}s_test_imin_slt_imm_i32:
+; SI: s_min_i32 {{s[0-9]+}}, {{s[0-9]+}}, 8
+define void @s_test_imin_slt_imm_i32(i32 addrspace(1)* %out, i32 %a) nounwind {
+ %cmp = icmp slt i32 %a, 8
+ %val = select i1 %cmp, i32 %a, i32 8
+ store i32 %val, i32 addrspace(1)* %out, align 4
+ ret void
+}
+
+; FUNC-LABEL: {{^}}s_test_imin_sle_imm_i32:
+; SI: s_min_i32 {{s[0-9]+}}, {{s[0-9]+}}, 8
+define void @s_test_imin_sle_imm_i32(i32 addrspace(1)* %out, i32 %a) nounwind {
+ %cmp = icmp sle i32 %a, 8
+ %val = select i1 %cmp, i32 %a, i32 8
+ store i32 %val, i32 addrspace(1)* %out, align 4
+ ret void
+}
+
; FUNC-LABEL: @v_test_umin_ule_i32
; SI: v_min_u32_e32
define void @v_test_umin_ule_i32(i32 addrspace(1)* %out, i32 addrspace(1)* %aptr, i32 addrspace(1)* %bptr) nounwind {
OpenPOWER on IntegriCloud