blob: 870bf7fc72bd50ac8bb9551f5a61f79be89a0fe9 [file] [log] [blame]
Matt Arsenault29da7172013-12-10 21:11:55 +00001; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
2
Tom Stellard79243d92014-10-01 17:15:17 +00003; SI-LABEL: {{^}}test_i64_eq:
Tom Stellard326d6ec2014-11-05 14:50:53 +00004; SI: v_cmp_eq_i64
Matt Arsenault29da7172013-12-10 21:11:55 +00005define void @test_i64_eq(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind {
6 %cmp = icmp eq i64 %a, %b
7 %result = sext i1 %cmp to i32
8 store i32 %result, i32 addrspace(1)* %out, align 4
9 ret void
10}
11
Tom Stellard79243d92014-10-01 17:15:17 +000012; SI-LABEL: {{^}}test_i64_ne:
Tom Stellard326d6ec2014-11-05 14:50:53 +000013; SI: v_cmp_ne_i64
Matt Arsenault29da7172013-12-10 21:11:55 +000014define void @test_i64_ne(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind {
15 %cmp = icmp ne i64 %a, %b
16 %result = sext i1 %cmp to i32
17 store i32 %result, i32 addrspace(1)* %out, align 4
18 ret void
19}
20
Tom Stellard79243d92014-10-01 17:15:17 +000021; SI-LABEL: {{^}}test_i64_slt:
Tom Stellard326d6ec2014-11-05 14:50:53 +000022; SI: v_cmp_lt_i64
Matt Arsenault29da7172013-12-10 21:11:55 +000023define void @test_i64_slt(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind {
24 %cmp = icmp slt i64 %a, %b
25 %result = sext i1 %cmp to i32
26 store i32 %result, i32 addrspace(1)* %out, align 4
27 ret void
28}
29
Tom Stellard79243d92014-10-01 17:15:17 +000030; SI-LABEL: {{^}}test_i64_ult:
Tom Stellard326d6ec2014-11-05 14:50:53 +000031; SI: v_cmp_lt_u64
Matt Arsenault29da7172013-12-10 21:11:55 +000032define void @test_i64_ult(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind {
33 %cmp = icmp ult i64 %a, %b
34 %result = sext i1 %cmp to i32
35 store i32 %result, i32 addrspace(1)* %out, align 4
36 ret void
37}
38
Tom Stellard79243d92014-10-01 17:15:17 +000039; SI-LABEL: {{^}}test_i64_sle:
Tom Stellard326d6ec2014-11-05 14:50:53 +000040; SI: v_cmp_le_i64
Matt Arsenault29da7172013-12-10 21:11:55 +000041define void @test_i64_sle(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind {
42 %cmp = icmp sle i64 %a, %b
43 %result = sext i1 %cmp to i32
44 store i32 %result, i32 addrspace(1)* %out, align 4
45 ret void
46}
47
Tom Stellard79243d92014-10-01 17:15:17 +000048; SI-LABEL: {{^}}test_i64_ule:
Tom Stellard326d6ec2014-11-05 14:50:53 +000049; SI: v_cmp_le_u64
Matt Arsenault29da7172013-12-10 21:11:55 +000050define void @test_i64_ule(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind {
51 %cmp = icmp ule i64 %a, %b
52 %result = sext i1 %cmp to i32
53 store i32 %result, i32 addrspace(1)* %out, align 4
54 ret void
55}
56
Tom Stellard79243d92014-10-01 17:15:17 +000057; SI-LABEL: {{^}}test_i64_sgt:
Tom Stellard326d6ec2014-11-05 14:50:53 +000058; SI: v_cmp_gt_i64
Matt Arsenault29da7172013-12-10 21:11:55 +000059define void @test_i64_sgt(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind {
60 %cmp = icmp sgt i64 %a, %b
61 %result = sext i1 %cmp to i32
62 store i32 %result, i32 addrspace(1)* %out, align 4
63 ret void
64}
65
Tom Stellard79243d92014-10-01 17:15:17 +000066; SI-LABEL: {{^}}test_i64_ugt:
Tom Stellard326d6ec2014-11-05 14:50:53 +000067; SI: v_cmp_gt_u64
Matt Arsenault29da7172013-12-10 21:11:55 +000068define void @test_i64_ugt(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind {
69 %cmp = icmp ugt i64 %a, %b
70 %result = sext i1 %cmp to i32
71 store i32 %result, i32 addrspace(1)* %out, align 4
72 ret void
73}
74
Tom Stellard79243d92014-10-01 17:15:17 +000075; SI-LABEL: {{^}}test_i64_sge:
Tom Stellard326d6ec2014-11-05 14:50:53 +000076; SI: v_cmp_ge_i64
Matt Arsenault29da7172013-12-10 21:11:55 +000077define void @test_i64_sge(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind {
78 %cmp = icmp sge i64 %a, %b
79 %result = sext i1 %cmp to i32
80 store i32 %result, i32 addrspace(1)* %out, align 4
81 ret void
82}
83
Tom Stellard79243d92014-10-01 17:15:17 +000084; SI-LABEL: {{^}}test_i64_uge:
Tom Stellard326d6ec2014-11-05 14:50:53 +000085; SI: v_cmp_ge_u64
Matt Arsenault29da7172013-12-10 21:11:55 +000086define void @test_i64_uge(i32 addrspace(1)* %out, i64 %a, i64 %b) nounwind {
87 %cmp = icmp uge i64 %a, %b
88 %result = sext i1 %cmp to i32
89 store i32 %result, i32 addrspace(1)* %out, align 4
90 ret void
91}
92