@@ -12,22 +12,15 @@ define i1 @workitem_zero() {
12
12
; DAGISEL-GFX9-LABEL: workitem_zero:
13
13
; DAGISEL-GFX9: ; %bb.0: ; %entry
14
14
; DAGISEL-GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15
- ; DAGISEL-GFX9-NEXT: v_lshrrev_b32_e32 v1, 10, v31
16
- ; DAGISEL-GFX9-NEXT: v_lshrrev_b32_e32 v0, 20, v31
17
- ; DAGISEL-GFX9-NEXT: v_or_b32_e32 v1, v31, v1
18
- ; DAGISEL-GFX9-NEXT: v_or_b32_e32 v0, v1, v0
19
- ; DAGISEL-GFX9-NEXT: v_and_b32_e32 v0, 0x3ff, v0
15
+ ; DAGISEL-GFX9-NEXT: v_and_b32_e32 v0, 0x3fffffff, v31
20
16
; DAGISEL-GFX9-NEXT: v_cmp_eq_u32_e32 vcc, 0, v0
21
17
; DAGISEL-GFX9-NEXT: v_cndmask_b32_e64 v0, 0, 1, vcc
22
18
; DAGISEL-GFX9-NEXT: s_setpc_b64 s[30:31]
23
19
;
24
20
; DAGISEL-GFX942-LABEL: workitem_zero:
25
21
; DAGISEL-GFX942: ; %bb.0: ; %entry
26
22
; DAGISEL-GFX942-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
27
- ; DAGISEL-GFX942-NEXT: v_lshrrev_b32_e32 v0, 20, v31
28
- ; DAGISEL-GFX942-NEXT: v_lshrrev_b32_e32 v1, 10, v31
29
- ; DAGISEL-GFX942-NEXT: v_or3_b32 v0, v31, v1, v0
30
- ; DAGISEL-GFX942-NEXT: v_and_b32_e32 v0, 0x3ff, v0
23
+ ; DAGISEL-GFX942-NEXT: v_and_b32_e32 v0, 0x3fffffff, v31
31
24
; DAGISEL-GFX942-NEXT: v_cmp_eq_u32_e32 vcc, 0, v0
32
25
; DAGISEL-GFX942-NEXT: s_nop 1
33
26
; DAGISEL-GFX942-NEXT: v_cndmask_b32_e64 v0, 0, 1, vcc
@@ -40,11 +33,7 @@ define i1 @workitem_zero() {
40
33
; DAGISEL-GFX12-NEXT: s_wait_samplecnt 0x0
41
34
; DAGISEL-GFX12-NEXT: s_wait_bvhcnt 0x0
42
35
; DAGISEL-GFX12-NEXT: s_wait_kmcnt 0x0
43
- ; DAGISEL-GFX12-NEXT: v_lshrrev_b32_e32 v0, 20, v31
44
- ; DAGISEL-GFX12-NEXT: v_lshrrev_b32_e32 v1, 10, v31
45
- ; DAGISEL-GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
46
- ; DAGISEL-GFX12-NEXT: v_or3_b32 v0, v31, v1, v0
47
- ; DAGISEL-GFX12-NEXT: v_and_b32_e32 v0, 0x3ff, v0
36
+ ; DAGISEL-GFX12-NEXT: v_and_b32_e32 v0, 0x3fffffff, v31
48
37
; DAGISEL-GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)
49
38
; DAGISEL-GFX12-NEXT: v_cmp_eq_u32_e32 vcc_lo, 0, v0
50
39
; DAGISEL-GFX12-NEXT: s_wait_alu 0xfffd
@@ -106,22 +95,15 @@ define i1 @workitem_nonzero() {
106
95
; DAGISEL-GFX9-LABEL: workitem_nonzero:
107
96
; DAGISEL-GFX9: ; %bb.0: ; %entry
108
97
; DAGISEL-GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
109
- ; DAGISEL-GFX9-NEXT: v_lshrrev_b32_e32 v1, 10, v31
110
- ; DAGISEL-GFX9-NEXT: v_lshrrev_b32_e32 v0, 20, v31
111
- ; DAGISEL-GFX9-NEXT: v_or_b32_e32 v1, v31, v1
112
- ; DAGISEL-GFX9-NEXT: v_or_b32_e32 v0, v1, v0
113
- ; DAGISEL-GFX9-NEXT: v_and_b32_e32 v0, 0x3ff, v0
98
+ ; DAGISEL-GFX9-NEXT: v_and_b32_e32 v0, 0x3fffffff, v31
114
99
; DAGISEL-GFX9-NEXT: v_cmp_ne_u32_e32 vcc, 0, v0
115
100
; DAGISEL-GFX9-NEXT: v_cndmask_b32_e64 v0, 0, 1, vcc
116
101
; DAGISEL-GFX9-NEXT: s_setpc_b64 s[30:31]
117
102
;
118
103
; DAGISEL-GFX942-LABEL: workitem_nonzero:
119
104
; DAGISEL-GFX942: ; %bb.0: ; %entry
120
105
; DAGISEL-GFX942-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
121
- ; DAGISEL-GFX942-NEXT: v_lshrrev_b32_e32 v0, 20, v31
122
- ; DAGISEL-GFX942-NEXT: v_lshrrev_b32_e32 v1, 10, v31
123
- ; DAGISEL-GFX942-NEXT: v_or3_b32 v0, v31, v1, v0
124
- ; DAGISEL-GFX942-NEXT: v_and_b32_e32 v0, 0x3ff, v0
106
+ ; DAGISEL-GFX942-NEXT: v_and_b32_e32 v0, 0x3fffffff, v31
125
107
; DAGISEL-GFX942-NEXT: v_cmp_ne_u32_e32 vcc, 0, v0
126
108
; DAGISEL-GFX942-NEXT: s_nop 1
127
109
; DAGISEL-GFX942-NEXT: v_cndmask_b32_e64 v0, 0, 1, vcc
@@ -134,11 +116,7 @@ define i1 @workitem_nonzero() {
134
116
; DAGISEL-GFX12-NEXT: s_wait_samplecnt 0x0
135
117
; DAGISEL-GFX12-NEXT: s_wait_bvhcnt 0x0
136
118
; DAGISEL-GFX12-NEXT: s_wait_kmcnt 0x0
137
- ; DAGISEL-GFX12-NEXT: v_lshrrev_b32_e32 v0, 20, v31
138
- ; DAGISEL-GFX12-NEXT: v_lshrrev_b32_e32 v1, 10, v31
139
- ; DAGISEL-GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
140
- ; DAGISEL-GFX12-NEXT: v_or3_b32 v0, v31, v1, v0
141
- ; DAGISEL-GFX12-NEXT: v_and_b32_e32 v0, 0x3ff, v0
119
+ ; DAGISEL-GFX12-NEXT: v_and_b32_e32 v0, 0x3fffffff, v31
142
120
; DAGISEL-GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1)
143
121
; DAGISEL-GFX12-NEXT: v_cmp_ne_u32_e32 vcc_lo, 0, v0
144
122
; DAGISEL-GFX12-NEXT: s_wait_alu 0xfffd
0 commit comments