Skip to content

Commit ab94652

Browse files
committed
AMDGPU: Use generated tests in reg-coalescer-sched-crash.ll test
This wasn't checking anything. Also remove undef uses.
1 parent 054d0f3 commit ab94652

File tree

1 file changed

+64
-4
lines changed

1 file changed

+64
-4
lines changed

llvm/test/CodeGen/AMDGPU/reg-coalescer-sched-crash.ll

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,79 @@
1-
; RUN: llc -mtriple=amdgcn -verify-machineinstrs -o /dev/null < %s
2-
; RUN: llc -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global -verify-machineinstrs -o /dev/null < %s
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2+
; RUN: llc -mtriple=amdgcn -mcpu=tahiti < %s | FileCheck -check-prefix=GFX6 %s
3+
; RUN: llc -mtriple=amdgcn -mcpu=tonga < %s | FileCheck -check-prefix=GFX8 %s
34

45
; The register coalescer introduces a verifier error which later
56
; results in a crash during scheduling.
67

78
declare i32 @llvm.amdgcn.workitem.id.x() #0
89

910
define amdgpu_kernel void @reg_coalescer_breaks_dead(ptr addrspace(1) nocapture readonly %arg, i32 %arg1, i32 %arg2, i32 %arg3, i1 %c0) #1 {
11+
; GFX6-LABEL: reg_coalescer_breaks_dead:
12+
; GFX6: ; %bb.0: ; %bb
13+
; GFX6-NEXT: v_mov_b32_e32 v1, 0
14+
; GFX6-NEXT: v_cmp_eq_u32_e32 vcc, 0, v0
15+
; GFX6-NEXT: v_mov_b32_e32 v2, 0
16+
; GFX6-NEXT: s_and_saveexec_b64 s[0:1], vcc
17+
; GFX6-NEXT: s_cbranch_execz .LBB0_2
18+
; GFX6-NEXT: ; %bb.1: ; %bb3
19+
; GFX6-NEXT: s_load_dword s2, s[4:5], 0xb
20+
; GFX6-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x9
21+
; GFX6-NEXT: s_waitcnt lgkmcnt(0)
22+
; GFX6-NEXT: s_ashr_i32 s3, s2, 31
23+
; GFX6-NEXT: s_lshl_b64 s[2:3], s[2:3], 3
24+
; GFX6-NEXT: s_add_u32 s2, s6, s2
25+
; GFX6-NEXT: s_addc_u32 s3, s7, s3
26+
; GFX6-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x0
27+
; GFX6-NEXT: s_waitcnt lgkmcnt(0)
28+
; GFX6-NEXT: v_mov_b32_e32 v1, s2
29+
; GFX6-NEXT: v_mov_b32_e32 v2, s3
30+
; GFX6-NEXT: .LBB0_2: ; %bb4
31+
; GFX6-NEXT: s_or_b64 exec, exec, s[0:1]
32+
; GFX6-NEXT: s_load_dword s0, s[4:5], 0xe
33+
; GFX6-NEXT: s_waitcnt lgkmcnt(0)
34+
; GFX6-NEXT: s_bitcmp0_b32 s0, 0
35+
; GFX6-NEXT: s_cbranch_scc1 .LBB0_4
36+
; GFX6-NEXT: ; %bb.3: ; %bb15
37+
; GFX6-NEXT: s_mov_b32 m0, -1
38+
; GFX6-NEXT: ds_write_b64 v0, v[1:2]
39+
; GFX6-NEXT: .LBB0_4: ; %bb16
40+
;
41+
; GFX8-LABEL: reg_coalescer_breaks_dead:
42+
; GFX8: ; %bb.0: ; %bb
43+
; GFX8-NEXT: v_mov_b32_e32 v1, 0
44+
; GFX8-NEXT: v_cmp_eq_u32_e32 vcc, 0, v0
45+
; GFX8-NEXT: v_mov_b32_e32 v2, 0
46+
; GFX8-NEXT: s_and_saveexec_b64 s[0:1], vcc
47+
; GFX8-NEXT: s_cbranch_execz .LBB0_2
48+
; GFX8-NEXT: ; %bb.1: ; %bb3
49+
; GFX8-NEXT: s_load_dword s2, s[4:5], 0x2c
50+
; GFX8-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24
51+
; GFX8-NEXT: s_waitcnt lgkmcnt(0)
52+
; GFX8-NEXT: s_ashr_i32 s3, s2, 31
53+
; GFX8-NEXT: s_lshl_b64 s[2:3], s[2:3], 3
54+
; GFX8-NEXT: s_add_u32 s2, s6, s2
55+
; GFX8-NEXT: s_addc_u32 s3, s7, s3
56+
; GFX8-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x0
57+
; GFX8-NEXT: s_waitcnt lgkmcnt(0)
58+
; GFX8-NEXT: v_mov_b32_e32 v1, s2
59+
; GFX8-NEXT: v_mov_b32_e32 v2, s3
60+
; GFX8-NEXT: .LBB0_2: ; %bb4
61+
; GFX8-NEXT: s_or_b64 exec, exec, s[0:1]
62+
; GFX8-NEXT: s_load_dword s0, s[4:5], 0x38
63+
; GFX8-NEXT: s_waitcnt lgkmcnt(0)
64+
; GFX8-NEXT: s_bitcmp0_b32 s0, 0
65+
; GFX8-NEXT: s_cbranch_scc1 .LBB0_4
66+
; GFX8-NEXT: ; %bb.3: ; %bb15
67+
; GFX8-NEXT: s_mov_b32 m0, -1
68+
; GFX8-NEXT: ds_write_b64 v0, v[1:2]
69+
; GFX8-NEXT: .LBB0_4: ; %bb16
1070
bb:
1171
%id.x = call i32 @llvm.amdgcn.workitem.id.x()
1272
%cmp0 = icmp eq i32 %id.x, 0
1373
br i1 %cmp0, label %bb3, label %bb4
1474

1575
bb3: ; preds = %bb
16-
%tmp = ashr exact i32 undef, 8
76+
%tmp = ashr exact i32 poison, 8
1777
br label %bb6
1878

1979
bb4: ; preds = %bb6, %bb
@@ -28,7 +88,7 @@ bb6: ; preds = %bb6, %bb3
2888
%tmp11 = getelementptr inbounds <2 x i32>, ptr addrspace(1) %arg, i64 %tmp10
2989
%tmp12 = load <2 x i32>, ptr addrspace(1) %tmp11, align 8
3090
%tmp13 = add <2 x i32> %tmp12, %tmp7
31-
%tmp14 = icmp slt i32 undef, %arg2
91+
%tmp14 = icmp slt i32 poison, %arg2
3292
br i1 %tmp14, label %bb6, label %bb4
3393

3494
bb15: ; preds = %bb4

0 commit comments

Comments
 (0)