Skip to content

Commit e7e3462

Browse files
Ana MihajlovicAna Mihajlovic
authored andcommitted
cover case for single v_cndmask to reduce code size
1 parent b2f1080 commit e7e3462

File tree

11 files changed

+231
-221
lines changed

11 files changed

+231
-221
lines changed

llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,19 @@ class SIFoldOperandsImpl {
119119
return AMDGPU::V_CMP_LE_U32_e64;
120120
case AMDGPU::V_CMP_LT_U32_e64:
121121
return AMDGPU::V_CMP_GE_U32_e64;
122+
123+
// case AMDGPU::V_CMP_EQ_U32_e64:
124+
// return AMDGPU::V_CMP_NE_U32_e64;
125+
// case AMDGPU::V_CMP_NE_U32_e64:
126+
// return AMDGPU::V_CMP_EQ_U32_e64;
127+
// case AMDGPU::V_CMP_GE_U32_e64:
128+
// return AMDGPU::V_CMP_LT_U32_e64;
129+
// case AMDGPU::V_CMP_LE_U32_e64:
130+
// return AMDGPU::V_CMP_GT_U32_e64;
131+
// case AMDGPU::V_CMP_GT_U32_e64:
132+
// return AMDGPU::V_CMP_LE_U32_e64;
133+
// case AMDGPU::V_CMP_LT_U32_e64:
134+
// return AMDGPU::V_CMP_GE_U32_e64;
122135
default:
123136
return 0;
124137
}
@@ -1504,7 +1517,7 @@ bool SIFoldOperandsImpl::shouldSwitchOperands(MachineRegisterInfo &MRI,
15041517
if (src1Imm && !src0Imm)
15051518
count++;
15061519
}
1507-
return (count >= 2);
1520+
return (count >= 1);
15081521
}
15091522

15101523
// Try to fold an instruction into a simpler one

llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll

Lines changed: 102 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -11,41 +11,41 @@ define float @dyn_extract_v8f32_const_s_v(i32 %sel) {
1111
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 1, v0
1212
; GCN-NEXT: v_mov_b32_e32 v1, 0x40400000
1313
; GCN-NEXT: v_cndmask_b32_e64 v6, 1.0, 2.0, vcc
14-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 2, v0
15-
; GCN-NEXT: v_cndmask_b32_e32 v1, v6, v1, vcc
16-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 3, v0
14+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 2, v0
15+
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v6, vcc
16+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 3, v0
1717
; GCN-NEXT: v_mov_b32_e32 v2, 0x40a00000
18-
; GCN-NEXT: v_cndmask_b32_e64 v1, v1, 4.0, vcc
19-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 4, v0
18+
; GCN-NEXT: v_cndmask_b32_e32 v1, 4.0, v1, vcc
19+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 4, v0
2020
; GCN-NEXT: v_mov_b32_e32 v3, 0x40c00000
21-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v2, vcc
22-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 5, v0
21+
; GCN-NEXT: v_cndmask_b32_e32 v1, v2, v1, vcc
22+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 5, v0
2323
; GCN-NEXT: v_mov_b32_e32 v4, 0x40e00000
24-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v3, vcc
25-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 6, v0
24+
; GCN-NEXT: v_cndmask_b32_e32 v1, v3, v1, vcc
25+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 6, v0
2626
; GCN-NEXT: v_mov_b32_e32 v5, 0x41000000
27-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v4, vcc
28-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 7, v0
29-
; GCN-NEXT: v_cndmask_b32_e32 v0, v1, v5, vcc
27+
; GCN-NEXT: v_cndmask_b32_e32 v1, v4, v1, vcc
28+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 7, v0
29+
; GCN-NEXT: v_cndmask_b32_e32 v0, v5, v1, vcc
3030
; GCN-NEXT: s_setpc_b64 s[30:31]
3131
;
3232
; GFX10PLUS-LABEL: dyn_extract_v8f32_const_s_v:
3333
; GFX10PLUS: ; %bb.0: ; %entry
3434
; GFX10PLUS-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3535
; GFX10PLUS-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0
3636
; GFX10PLUS-NEXT: v_cndmask_b32_e64 v1, 1.0, 2.0, vcc_lo
37-
; GFX10PLUS-NEXT: v_cmp_eq_u32_e32 vcc_lo, 2, v0
38-
; GFX10PLUS-NEXT: v_cndmask_b32_e64 v1, v1, 0x40400000, vcc_lo
39-
; GFX10PLUS-NEXT: v_cmp_eq_u32_e32 vcc_lo, 3, v0
40-
; GFX10PLUS-NEXT: v_cndmask_b32_e64 v1, v1, 4.0, vcc_lo
41-
; GFX10PLUS-NEXT: v_cmp_eq_u32_e32 vcc_lo, 4, v0
42-
; GFX10PLUS-NEXT: v_cndmask_b32_e64 v1, v1, 0x40a00000, vcc_lo
43-
; GFX10PLUS-NEXT: v_cmp_eq_u32_e32 vcc_lo, 5, v0
44-
; GFX10PLUS-NEXT: v_cndmask_b32_e64 v1, v1, 0x40c00000, vcc_lo
45-
; GFX10PLUS-NEXT: v_cmp_eq_u32_e32 vcc_lo, 6, v0
46-
; GFX10PLUS-NEXT: v_cndmask_b32_e64 v1, v1, 0x40e00000, vcc_lo
47-
; GFX10PLUS-NEXT: v_cmp_eq_u32_e32 vcc_lo, 7, v0
48-
; GFX10PLUS-NEXT: v_cndmask_b32_e64 v0, v1, 0x41000000, vcc_lo
37+
; GFX10PLUS-NEXT: v_cmp_ne_u32_e32 vcc_lo, 2, v0
38+
; GFX10PLUS-NEXT: v_cndmask_b32_e32 v1, 0x40400000, v1, vcc_lo
39+
; GFX10PLUS-NEXT: v_cmp_ne_u32_e32 vcc_lo, 3, v0
40+
; GFX10PLUS-NEXT: v_cndmask_b32_e32 v1, 4.0, v1, vcc_lo
41+
; GFX10PLUS-NEXT: v_cmp_ne_u32_e32 vcc_lo, 4, v0
42+
; GFX10PLUS-NEXT: v_cndmask_b32_e32 v1, 0x40a00000, v1, vcc_lo
43+
; GFX10PLUS-NEXT: v_cmp_ne_u32_e32 vcc_lo, 5, v0
44+
; GFX10PLUS-NEXT: v_cndmask_b32_e32 v1, 0x40c00000, v1, vcc_lo
45+
; GFX10PLUS-NEXT: v_cmp_ne_u32_e32 vcc_lo, 6, v0
46+
; GFX10PLUS-NEXT: v_cndmask_b32_e32 v1, 0x40e00000, v1, vcc_lo
47+
; GFX10PLUS-NEXT: v_cmp_ne_u32_e32 vcc_lo, 7, v0
48+
; GFX10PLUS-NEXT: v_cndmask_b32_e32 v0, 0x41000000, v1, vcc_lo
4949
; GFX10PLUS-NEXT: s_setpc_b64 s[30:31]
5050
entry:
5151
%ext = extractelement <8 x float> <float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0>, i32 %sel
@@ -3383,43 +3383,43 @@ define float @dyn_extract_v15f32_const_s_v(i32 %sel) {
33833383
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 1, v0
33843384
; GCN-NEXT: v_mov_b32_e32 v1, 0x40400000
33853385
; GCN-NEXT: v_cndmask_b32_e64 v13, 1.0, 2.0, vcc
3386-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 2, v0
3387-
; GCN-NEXT: v_cndmask_b32_e32 v1, v13, v1, vcc
3388-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 3, v0
3386+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 2, v0
3387+
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v13, vcc
3388+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 3, v0
33893389
; GCN-NEXT: v_mov_b32_e32 v2, 0x40a00000
3390-
; GCN-NEXT: v_cndmask_b32_e64 v1, v1, 4.0, vcc
3391-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 4, v0
3390+
; GCN-NEXT: v_cndmask_b32_e32 v1, 4.0, v1, vcc
3391+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 4, v0
33923392
; GCN-NEXT: v_mov_b32_e32 v3, 0x40c00000
3393-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v2, vcc
3394-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 5, v0
3393+
; GCN-NEXT: v_cndmask_b32_e32 v1, v2, v1, vcc
3394+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 5, v0
33953395
; GCN-NEXT: v_mov_b32_e32 v4, 0x40e00000
3396-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v3, vcc
3397-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 6, v0
3396+
; GCN-NEXT: v_cndmask_b32_e32 v1, v3, v1, vcc
3397+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 6, v0
33983398
; GCN-NEXT: v_mov_b32_e32 v5, 0x41000000
3399-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v4, vcc
3400-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 7, v0
3399+
; GCN-NEXT: v_cndmask_b32_e32 v1, v4, v1, vcc
3400+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 7, v0
34013401
; GCN-NEXT: v_mov_b32_e32 v6, 0x41100000
3402-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v5, vcc
3403-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 8, v0
3402+
; GCN-NEXT: v_cndmask_b32_e32 v1, v5, v1, vcc
3403+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 8, v0
34043404
; GCN-NEXT: v_mov_b32_e32 v7, 0x41200000
3405-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v6, vcc
3406-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 9, v0
3405+
; GCN-NEXT: v_cndmask_b32_e32 v1, v6, v1, vcc
3406+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 9, v0
34073407
; GCN-NEXT: v_mov_b32_e32 v8, 0x41300000
3408-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v7, vcc
3409-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 10, v0
3408+
; GCN-NEXT: v_cndmask_b32_e32 v1, v7, v1, vcc
3409+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 10, v0
34103410
; GCN-NEXT: v_mov_b32_e32 v9, 0x41400000
3411-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v8, vcc
3412-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 11, v0
3411+
; GCN-NEXT: v_cndmask_b32_e32 v1, v8, v1, vcc
3412+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 11, v0
34133413
; GCN-NEXT: v_mov_b32_e32 v10, 0x41500000
3414-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v9, vcc
3415-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 12, v0
3414+
; GCN-NEXT: v_cndmask_b32_e32 v1, v9, v1, vcc
3415+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 12, v0
34163416
; GCN-NEXT: v_mov_b32_e32 v11, 0x41600000
3417-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v10, vcc
3418-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 13, v0
3417+
; GCN-NEXT: v_cndmask_b32_e32 v1, v10, v1, vcc
3418+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 13, v0
34193419
; GCN-NEXT: v_mov_b32_e32 v12, 0x41700000
3420-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v11, vcc
3421-
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 14, v0
3422-
; GCN-NEXT: v_cndmask_b32_e32 v1, v1, v12, vcc
3420+
; GCN-NEXT: v_cndmask_b32_e32 v1, v11, v1, vcc
3421+
; GCN-NEXT: v_cmp_ne_u32_e32 vcc, 14, v0
3422+
; GCN-NEXT: v_cndmask_b32_e32 v1, v12, v1, vcc
34233423
; GCN-NEXT: v_cmp_eq_u32_e32 vcc, 15, v0
34243424
; GCN-NEXT: v_cndmask_b32_e32 v0, v1, v0, vcc
34253425
; GCN-NEXT: s_setpc_b64 s[30:31]
@@ -3429,32 +3429,32 @@ define float @dyn_extract_v15f32_const_s_v(i32 %sel) {
34293429
; GFX10-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
34303430
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0
34313431
; GFX10-NEXT: v_cndmask_b32_e64 v1, 1.0, 2.0, vcc_lo
3432-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 2, v0
3433-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x40400000, vcc_lo
3434-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 3, v0
3435-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 4.0, vcc_lo
3436-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 4, v0
3437-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x40a00000, vcc_lo
3438-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 5, v0
3439-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x40c00000, vcc_lo
3440-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 6, v0
3441-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x40e00000, vcc_lo
3442-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 7, v0
3443-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x41000000, vcc_lo
3444-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 8, v0
3445-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x41100000, vcc_lo
3446-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 9, v0
3447-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x41200000, vcc_lo
3448-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 10, v0
3449-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x41300000, vcc_lo
3450-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 11, v0
3451-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x41400000, vcc_lo
3452-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 12, v0
3453-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x41500000, vcc_lo
3454-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 13, v0
3455-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x41600000, vcc_lo
3456-
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 14, v0
3457-
; GFX10-NEXT: v_cndmask_b32_e64 v1, v1, 0x41700000, vcc_lo
3432+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 2, v0
3433+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x40400000, v1, vcc_lo
3434+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 3, v0
3435+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 4.0, v1, vcc_lo
3436+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 4, v0
3437+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x40a00000, v1, vcc_lo
3438+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 5, v0
3439+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x40c00000, v1, vcc_lo
3440+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 6, v0
3441+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x40e00000, v1, vcc_lo
3442+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 7, v0
3443+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x41000000, v1, vcc_lo
3444+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 8, v0
3445+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x41100000, v1, vcc_lo
3446+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 9, v0
3447+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x41200000, v1, vcc_lo
3448+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 10, v0
3449+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x41300000, v1, vcc_lo
3450+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 11, v0
3451+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x41400000, v1, vcc_lo
3452+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 12, v0
3453+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x41500000, v1, vcc_lo
3454+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 13, v0
3455+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x41600000, v1, vcc_lo
3456+
; GFX10-NEXT: v_cmp_ne_u32_e32 vcc_lo, 14, v0
3457+
; GFX10-NEXT: v_cndmask_b32_e32 v1, 0x41700000, v1, vcc_lo
34583458
; GFX10-NEXT: v_cmp_eq_u32_e32 vcc_lo, 15, v0
34593459
; GFX10-NEXT: v_cndmask_b32_e64 v0, v1, s4, vcc_lo
34603460
; GFX10-NEXT: s_setpc_b64 s[30:31]
@@ -3464,32 +3464,32 @@ define float @dyn_extract_v15f32_const_s_v(i32 %sel) {
34643464
; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
34653465
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0
34663466
; GFX11-NEXT: v_cndmask_b32_e64 v1, 1.0, 2.0, vcc_lo
3467-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 2, v0
3468-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x40400000, vcc_lo
3469-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 3, v0
3470-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 4.0, vcc_lo
3471-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 4, v0
3472-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x40a00000, vcc_lo
3473-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 5, v0
3474-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x40c00000, vcc_lo
3475-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 6, v0
3476-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x40e00000, vcc_lo
3477-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 7, v0
3478-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x41000000, vcc_lo
3479-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 8, v0
3480-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x41100000, vcc_lo
3481-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 9, v0
3482-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x41200000, vcc_lo
3483-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 10, v0
3484-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x41300000, vcc_lo
3485-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 11, v0
3486-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x41400000, vcc_lo
3487-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 12, v0
3488-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x41500000, vcc_lo
3489-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 13, v0
3490-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x41600000, vcc_lo
3491-
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 14, v0
3492-
; GFX11-NEXT: v_cndmask_b32_e64 v1, v1, 0x41700000, vcc_lo
3467+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 2, v0
3468+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x40400000, v1, vcc_lo
3469+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 3, v0
3470+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 4.0, v1, vcc_lo
3471+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 4, v0
3472+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x40a00000, v1, vcc_lo
3473+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 5, v0
3474+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x40c00000, v1, vcc_lo
3475+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 6, v0
3476+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x40e00000, v1, vcc_lo
3477+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 7, v0
3478+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x41000000, v1, vcc_lo
3479+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 8, v0
3480+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x41100000, v1, vcc_lo
3481+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 9, v0
3482+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x41200000, v1, vcc_lo
3483+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 10, v0
3484+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x41300000, v1, vcc_lo
3485+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 11, v0
3486+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x41400000, v1, vcc_lo
3487+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 12, v0
3488+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x41500000, v1, vcc_lo
3489+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 13, v0
3490+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x41600000, v1, vcc_lo
3491+
; GFX11-NEXT: v_cmp_ne_u32_e32 vcc_lo, 14, v0
3492+
; GFX11-NEXT: v_cndmask_b32_e32 v1, 0x41700000, v1, vcc_lo
34933493
; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 15, v0
34943494
; GFX11-NEXT: v_cndmask_b32_e64 v0, v1, s0, vcc_lo
34953495
; GFX11-NEXT: s_setpc_b64 s[30:31]

0 commit comments

Comments
 (0)