1
- ; NOTE: Assertions have been autogenerated by utils/update_test_checks .py
1
+ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks .py UTC_ARGS: --version 5
2
2
; RUN: opt -mtriple=amdgcn-amd-amdhsa -p simplifycfg,amdgpu-unify-divergent-exit-nodes %s -S -o - | FileCheck %s --check-prefix=OPT
3
3
; RUN: llc -mtriple=amdgcn-amd-amdhsa %s -o - | FileCheck %s --check-prefix=ISA
4
4
@@ -15,34 +15,40 @@ define void @nested_inf_loop(i1 %0, i1 %1) {
15
15
; OPT-NEXT: ret void
16
16
;
17
17
; ISA-LABEL: nested_inf_loop:
18
- ; ISA-NEXT: %bb.0: ; %BB
19
- ; ISA-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20
- ; ISA-NEXT: v_and_b32_e32 v1, 1, v1
21
- ; ISA-NEXT: v_and_b32_e32 v0, 1, v0
22
- ; ISA-NEXT: v_cmp_eq_u32_e64 s[4:5], 1, v1
23
- ; ISA-NEXT: v_cmp_eq_u32_e32 vcc, 1, v0
24
- ; ISA-NEXT: s_xor_b64 s[6:7], vcc, -1
25
- ; ISA-NEXT: s_mov_b64 s[8:9], 0
26
- ; ISA-NEXT: .LBB0_1: ; %BB1
27
- ; ISA: s_and_b64 s[10:11], exec, s[6:7]
28
- ; ISA-NEXT: s_or_b64 s[8:9], s[10:11], s[8:9]
29
- ; ISA-NEXT: s_andn2_b64 exec, exec, s[8:9]
30
- ; ISA-NEXT: s_cbranch_execnz .LBB0_1
31
- ; ISA-NEXT: %bb.2: ; %BB2
32
- ; ISA: s_or_b64 exec, exec, s[8:9]
33
- ; ISA-NEXT: s_mov_b64 s[8:9], 0
34
- ; ISA-NEXT: .LBB0_3: ; %BB4
35
- ; ISA: s_and_b64 s[10:11], exec, s[4:5]
36
- ; ISA-NEXT: s_or_b64 s[8:9], s[10:11], s[8:9]
37
- ; ISA-NEXT: s_andn2_b64 exec, exec, s[8:9]
38
- ; ISA-NEXT: s_cbranch_execnz .LBB0_3
39
- ; ISA-NEXT: %bb.4: ; %loop.exit.guard
40
- ; ISA: s_or_b64 exec, exec, s[8:9]
41
- ; ISA-NEXT: s_mov_b64 vcc, 0
42
- ; ISA-NEXT: s_mov_b64 s[8:9], 0
43
- ; ISA-NEXT: s_branch .LBB0_1
44
- ; ISA-NEXT: %bb.5: ; %DummyReturnBlock
45
- ; ISA-NEXT: s_setpc_b64 s[30:31]
18
+ ; ISA: ; %bb.0: ; %BB
19
+ ; ISA-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20
+ ; ISA-NEXT: v_and_b32_e32 v1, 1, v1
21
+ ; ISA-NEXT: v_and_b32_e32 v0, 1, v0
22
+ ; ISA-NEXT: v_cmp_eq_u32_e64 s[4:5], 1, v1
23
+ ; ISA-NEXT: v_cmp_eq_u32_e32 vcc, 1, v0
24
+ ; ISA-NEXT: s_xor_b64 s[6:7], vcc, -1
25
+ ; ISA-NEXT: s_mov_b64 s[8:9], 0
26
+ ; ISA-NEXT: .LBB0_1: ; %BB1
27
+ ; ISA-NEXT: ; =>This Loop Header: Depth=1
28
+ ; ISA-NEXT: ; Child Loop BB0_3 Depth 2
29
+ ; ISA-NEXT: s_and_b64 s[10:11], exec, s[6:7]
30
+ ; ISA-NEXT: s_or_b64 s[8:9], s[10:11], s[8:9]
31
+ ; ISA-NEXT: s_andn2_b64 exec, exec, s[8:9]
32
+ ; ISA-NEXT: s_cbranch_execnz .LBB0_1
33
+ ; ISA-NEXT: ; %bb.2: ; %BB2
34
+ ; ISA-NEXT: ; in Loop: Header=BB0_1 Depth=1
35
+ ; ISA-NEXT: s_or_b64 exec, exec, s[8:9]
36
+ ; ISA-NEXT: s_mov_b64 s[8:9], 0
37
+ ; ISA-NEXT: .LBB0_3: ; %BB4
38
+ ; ISA-NEXT: ; Parent Loop BB0_1 Depth=1
39
+ ; ISA-NEXT: ; => This Inner Loop Header: Depth=2
40
+ ; ISA-NEXT: s_and_b64 s[10:11], exec, s[4:5]
41
+ ; ISA-NEXT: s_or_b64 s[8:9], s[10:11], s[8:9]
42
+ ; ISA-NEXT: s_andn2_b64 exec, exec, s[8:9]
43
+ ; ISA-NEXT: s_cbranch_execnz .LBB0_3
44
+ ; ISA-NEXT: ; %bb.4: ; %loop.exit.guard
45
+ ; ISA-NEXT: ; in Loop: Header=BB0_1 Depth=1
46
+ ; ISA-NEXT: s_or_b64 exec, exec, s[8:9]
47
+ ; ISA-NEXT: s_mov_b64 vcc, 0
48
+ ; ISA-NEXT: s_mov_b64 s[8:9], 0
49
+ ; ISA-NEXT: s_branch .LBB0_1
50
+ ; ISA-NEXT: ; %bb.5: ; %DummyReturnBlock
51
+ ; ISA-NEXT: s_setpc_b64 s[30:31]
46
52
BB:
47
53
br label %BB1
48
54
0 commit comments