Fangrui Song | 9e9907f | 2024-01-16 21:54:58 -0800 | [diff] [blame] | 1 | ; RUN: llc -mtriple=r600 -mcpu=redwood %s -o - | FileCheck %s |
Tom Stellard | 805890b | 2014-01-23 18:49:31 +0000 | [diff] [blame] | 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 Stellard | 79243d9 | 2014-10-01 17:15:17 +0000 | [diff] [blame] | 9 | ; CHECK-LABEL: {{^}}test: |
Tom Stellard | 805890b | 2014-01-23 18:49:31 +0000 | [diff] [blame] | 10 | ; CHECK-NOT: ALU_POP_AFTER |
| 11 | ; CHECK: TEX |
| 12 | ; CHECK-NEXT: POP |
Nikita Popov | bdf2fbb | 2022-12-19 12:39:01 +0100 | [diff] [blame] | 13 | define amdgpu_kernel void @test(ptr addrspace(1) %out, ptr addrspace(1) %in, i32 %cond) { |
Tom Stellard | 805890b | 2014-01-23 18:49:31 +0000 | [diff] [blame] | 14 | entry: |
| 15 | %0 = icmp eq i32 %cond, 0 |
| 16 | br i1 %0, label %endif, label %if |
| 17 | |
| 18 | if: |
Nikita Popov | bdf2fbb | 2022-12-19 12:39:01 +0100 | [diff] [blame] | 19 | %1 = load i32, ptr addrspace(1) %in |
Tom Stellard | 805890b | 2014-01-23 18:49:31 +0000 | [diff] [blame] | 20 | br label %endif |
| 21 | |
| 22 | endif: |
| 23 | %x = phi i32 [ %1, %if], [ 0, %entry] |
Nikita Popov | bdf2fbb | 2022-12-19 12:39:01 +0100 | [diff] [blame] | 24 | store i32 %x, ptr addrspace(1) %out |
Tom Stellard | 805890b | 2014-01-23 18:49:31 +0000 | [diff] [blame] | 25 | br label %done |
| 26 | |
| 27 | done: |
| 28 | ret void |
| 29 | } |