Skip to content

Commit 022b765

Browse files
committed
Update shl64-reduce.ll for vector v2i32
1 parent 4dffe4f commit 022b765

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

llvm/test/CodeGen/AMDGPU/shl64_reduce.ll

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@ define <2 x i64> @shl_v2_metadata(<2 x i64> %arg0, ptr %arg1.ptr) {
7878
; CHECK-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7979
; CHECK-NEXT: flat_load_dwordx4 v[3:6], v[4:5]
8080
; CHECK-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0)
81-
; CHECK-NEXT: v_lshlrev_b32_e32 v1, v3, v0
82-
; CHECK-NEXT: v_lshlrev_b32_e32 v3, v5, v2
81+
; CHECK-NEXT: v_and_b32_e32 v4, 31, v5
82+
; CHECK-NEXT: v_and_b32_e32 v1, 31, v3
83+
; CHECK-NEXT: v_lshlrev_b32_e32 v1, v1, v0
84+
; CHECK-NEXT: v_lshlrev_b32_e32 v3, v4, v2
8385
; CHECK-NEXT: v_mov_b32_e32 v0, 0
8486
; CHECK-NEXT: v_mov_b32_e32 v2, 0
8587
; CHECK-NEXT: s_setpc_b64 s[30:31]
@@ -304,8 +306,10 @@ define <2 x i64> @shl_v2_or32(<2 x i64> %arg0, <2 x i64> %shift_amt) {
304306
; CHECK-LABEL: shl_v2_or32:
305307
; CHECK: ; %bb.0:
306308
; CHECK-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
307-
; CHECK-NEXT: v_lshlrev_b32_e32 v1, v4, v0
308-
; CHECK-NEXT: v_lshlrev_b32_e32 v3, v6, v2
309+
; CHECK-NEXT: v_and_b32_e32 v3, 31, v6
310+
; CHECK-NEXT: v_and_b32_e32 v1, 31, v4
311+
; CHECK-NEXT: v_lshlrev_b32_e32 v1, v1, v0
312+
; CHECK-NEXT: v_lshlrev_b32_e32 v3, v3, v2
309313
; CHECK-NEXT: v_mov_b32_e32 v0, 0
310314
; CHECK-NEXT: v_mov_b32_e32 v2, 0
311315
; CHECK-NEXT: s_setpc_b64 s[30:31]
@@ -367,8 +371,12 @@ define <2 x i64> @shl_v2_or32_sgpr(<2 x i64> inreg %arg0, <2 x i64> inreg %shift
367371
; CHECK-LABEL: shl_v2_or32_sgpr:
368372
; CHECK: ; %bb.0:
369373
; CHECK-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
370-
; CHECK-NEXT: s_lshl_b32 s4, s16, s20
371-
; CHECK-NEXT: s_lshl_b32 s5, s18, s22
374+
; CHECK-NEXT: s_mov_b32 s4, 31
375+
; CHECK-NEXT: s_mov_b32 s21, s22
376+
; CHECK-NEXT: s_mov_b32 s5, s4
377+
; CHECK-NEXT: s_and_b64 s[4:5], s[20:21], s[4:5]
378+
; CHECK-NEXT: s_lshl_b32 s4, s16, s4
379+
; CHECK-NEXT: s_lshl_b32 s5, s18, s5
372380
; CHECK-NEXT: v_mov_b32_e32 v0, 0
373381
; CHECK-NEXT: v_mov_b32_e32 v1, s4
374382
; CHECK-NEXT: v_mov_b32_e32 v2, 0

0 commit comments

Comments
 (0)