[DAGCombiner] Eliminate dead stores to stack.
[llvm-complete.git] / test / CodeGen / AMDGPU / add_i1.ll
blobc5f7e3af5e3075b44bd9e71cf46ecea5b80d0d5f
1 ; RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
4 ; GCN-LABEL: {{^}}add_var_var_i1:
5 ; GCN: s_xor_b64
6 define amdgpu_kernel void @add_var_var_i1(i1 addrspace(1)* %out, i1 addrspace(1)* %in0, i1 addrspace(1)* %in1) {
7   %a = load volatile i1, i1 addrspace(1)* %in0
8   %b = load volatile i1, i1 addrspace(1)* %in1
9   %add = add i1 %a, %b
10   store i1 %add, i1 addrspace(1)* %out
11   ret void
14 ; GCN-LABEL: {{^}}add_var_imm_i1:
15 ; GCN: s_not_b64
16 define amdgpu_kernel void @add_var_imm_i1(i1 addrspace(1)* %out, i1 addrspace(1)* %in) {
17   %a = load volatile i1, i1 addrspace(1)* %in
18   %add = add i1 %a, 1
19   store i1 %add, i1 addrspace(1)* %out
20   ret void
23 ; GCN-LABEL: {{^}}add_i1_cf:
24 ; GCN: ; %endif
25 ; GCN: s_not_b64
26 define amdgpu_kernel void @add_i1_cf(i1 addrspace(1)* %out, i1 addrspace(1)* %a, i1 addrspace(1)* %b) {
27 entry:
28   %tid = call i32 @llvm.amdgcn.workitem.id.x()
29   %d_cmp = icmp ult i32 %tid, 16
30   br i1 %d_cmp, label %if, label %else
32 if:
33   %0 = load volatile i1, i1 addrspace(1)* %a
34   br label %endif
36 else:
37   %1 = load volatile i1, i1 addrspace(1)* %b
38   br label %endif
40 endif:
41   %2 = phi i1 [%0, %if], [%1, %else]
42   %3 = add i1 %2, -1
43   store i1 %3, i1 addrspace(1)* %out
44   ret void
47 declare i32 @llvm.amdgcn.workitem.id.x()