blob: bcbe34ea543bac2b3454dc8b8a6be0abc340ec43 [file] [log] [blame]
Tom Stellard805890b2014-01-23 18:49:31 +00001; RUN: llc -march=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
Tom Stellard79243d92014-10-01 17:15:17 +00009; CHECK-LABEL: {{^}}test:
Tom Stellard805890b2014-01-23 18:49:31 +000010; CHECK-NOT: ALU_POP_AFTER
11; CHECK: TEX
12; CHECK-NEXT: POP
13define void @test(i32 addrspace(1)* %out, i32 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 addrspace(1)* %in
20 br label %endif
21
22endif:
23 %x = phi i32 [ %1, %if], [ 0, %entry]
24 store i32 %x, i32 addrspace(1)* %out
25 br label %done
26
27done:
28 ret void
29}