|
| 1 | +; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=dumpcode -filetype=obj < %s | llvm-objcopy --dump-section .AMDGPU.disasm=- - /dev/null | FileCheck %s -check-prefix=GFX10 |
| 2 | + |
| 3 | +; GFX10: f: |
| 4 | +; GFX10-NEXT: BB0_0: |
| 5 | +; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; BF8C0000 |
| 6 | +; GFX10-NEXT: v_mov_b32_e32 v3, 0xde ; 7E0602FF 000000DE |
| 7 | +; GFX10-NEXT: v_add_nc_u32_e32 v2, 1, v4 ; 4A040881 |
| 8 | +; GFX10-NEXT: s_mov_b32 s4, 0 ; BE840380 |
| 9 | +; GFX10-NEXT: global_store_dword v[0:1], v3, off ; DC708000 007D0300 |
| 10 | +; GFX10-NEXT: BB0_1: |
| 11 | +; GFX10-NEXT: v_add_nc_u32_e32 v2, -1, v2 ; 4A0404C1 |
| 12 | +; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 0, v2 ; 7D840480 |
| 13 | +; GFX10-NEXT: s_or_b32 s4, vcc_lo, s4 ; 8804046A |
| 14 | +; GFX10-NEXT: s_andn2_b32 exec_lo, exec_lo, s4 ; 8A7E047E |
| 15 | +; GFX10-NEXT: s_cbranch_execnz "" ; BF890000 |
| 16 | +; GFX10-NEXT: s_or_b32 exec_lo, exec_lo, s4 ; 887E047E |
| 17 | +; GFX10-NEXT: s_setpc_b64 s[30:31] ; BE80201E |
| 18 | + |
| 19 | +define void @f(ptr addrspace(1) %out, ptr addrspace(1) %in, i32 %val) { |
| 20 | +entry: |
| 21 | + br label %body |
| 22 | +body: |
| 23 | + %i = phi i32 [0, %entry], [%inc, %body] |
| 24 | + store i32 222, ptr addrspace(1) %out |
| 25 | + %cmp = icmp ne i32 %i, %val |
| 26 | + %inc = add i32 %i, 1 |
| 27 | + br i1 %cmp, label %body, label %end |
| 28 | +end: |
| 29 | + ret void |
| 30 | +} |
0 commit comments