xref: /llvm-project/llvm/test/CodeGen/AMDGPU/vtx-fetch-branch.ll (revision 9e9907f1cfa424366fba58d9520f9305b537cec9)
1; RUN: llc -mtriple=r600 -mcpu=redwood %s -o - | FileCheck %s
2
3; This tests for a bug where vertex fetch clauses right before an ENDIF
4; instruction where being emitted after the ENDIF.  We were using ALU_POP_AFTER
5; for the ALU clause before the vetex fetch instead of emitting a POP instruction
6; after the fetch clause.
7
8
9; CHECK-LABEL: {{^}}test:
10; CHECK-NOT: ALU_POP_AFTER
11; CHECK: TEX
12; CHECK-NEXT: POP
13define amdgpu_kernel void @test(ptr addrspace(1) %out, ptr addrspace(1) %in, i32 %cond) {
14entry:
15  %0 = icmp eq i32 %cond, 0
16  br i1 %0, label %endif, label %if
17
18if:
19  %1 = load i32, ptr addrspace(1) %in
20  br label %endif
21
22endif:
23  %x = phi i32 [ %1, %if], [ 0, %entry]
24  store i32 %x, ptr addrspace(1) %out
25  br label %done
26
27done:
28  ret void
29}
30