@@ -5692,10 +5692,6 @@ define void @freeze_v3i16(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
56925692; GFX6-SDAG-NEXT: s_mov_b32 s5, s6
56935693; GFX6-SDAG-NEXT: buffer_load_dwordx2 v[0:1], v[0:1], s[4:7], 0 addr64
56945694; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0)
5695- ; GFX6-SDAG-NEXT: v_lshrrev_b32_e32 v4, 16, v0
5696- ; GFX6-SDAG-NEXT: v_and_b32_e32 v0, 0xffff, v0
5697- ; GFX6-SDAG-NEXT: v_lshlrev_b32_e32 v4, 16, v4
5698- ; GFX6-SDAG-NEXT: v_or_b32_e32 v0, v0, v4
56995695; GFX6-SDAG-NEXT: buffer_store_short v1, v[2:3], s[4:7], 0 addr64 offset:4
57005696; GFX6-SDAG-NEXT: buffer_store_dword v0, v[2:3], s[4:7], 0 addr64
57015697; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0)
@@ -5725,10 +5721,6 @@ define void @freeze_v3i16(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
57255721; GFX7-SDAG-NEXT: s_mov_b32 s5, s6
57265722; GFX7-SDAG-NEXT: buffer_load_dwordx2 v[0:1], v[0:1], s[4:7], 0 addr64
57275723; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
5728- ; GFX7-SDAG-NEXT: v_lshrrev_b32_e32 v4, 16, v0
5729- ; GFX7-SDAG-NEXT: v_and_b32_e32 v0, 0xffff, v0
5730- ; GFX7-SDAG-NEXT: v_lshlrev_b32_e32 v4, 16, v4
5731- ; GFX7-SDAG-NEXT: v_or_b32_e32 v0, v0, v4
57325724; GFX7-SDAG-NEXT: buffer_store_short v1, v[2:3], s[4:7], 0 addr64 offset:4
57335725; GFX7-SDAG-NEXT: buffer_store_dword v0, v[2:3], s[4:7], 0 addr64
57345726; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
@@ -6351,10 +6343,6 @@ define void @freeze_v3f16(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
63516343; GFX6-SDAG-NEXT: s_mov_b32 s5, s6
63526344; GFX6-SDAG-NEXT: buffer_load_dwordx2 v[0:1], v[0:1], s[4:7], 0 addr64
63536345; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0)
6354- ; GFX6-SDAG-NEXT: v_and_b32_e32 v4, 0xffff, v0
6355- ; GFX6-SDAG-NEXT: v_lshrrev_b32_e32 v0, 16, v0
6356- ; GFX6-SDAG-NEXT: v_lshlrev_b32_e32 v0, 16, v0
6357- ; GFX6-SDAG-NEXT: v_or_b32_e32 v0, v4, v0
63586346; GFX6-SDAG-NEXT: buffer_store_short v1, v[2:3], s[4:7], 0 addr64 offset:4
63596347; GFX6-SDAG-NEXT: buffer_store_dword v0, v[2:3], s[4:7], 0 addr64
63606348; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0)
@@ -6384,10 +6372,6 @@ define void @freeze_v3f16(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
63846372; GFX7-SDAG-NEXT: s_mov_b32 s5, s6
63856373; GFX7-SDAG-NEXT: buffer_load_dwordx2 v[0:1], v[0:1], s[4:7], 0 addr64
63866374; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
6387- ; GFX7-SDAG-NEXT: v_and_b32_e32 v4, 0xffff, v0
6388- ; GFX7-SDAG-NEXT: v_lshrrev_b32_e32 v0, 16, v0
6389- ; GFX7-SDAG-NEXT: v_lshlrev_b32_e32 v0, 16, v0
6390- ; GFX7-SDAG-NEXT: v_or_b32_e32 v0, v4, v0
63916375; GFX7-SDAG-NEXT: buffer_store_short v1, v[2:3], s[4:7], 0 addr64 offset:4
63926376; GFX7-SDAG-NEXT: buffer_store_dword v0, v[2:3], s[4:7], 0 addr64
63936377; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
@@ -12347,14 +12331,9 @@ define void @freeze_v3i8(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
1234712331; GFX6-SDAG-NEXT: s_mov_b32 s5, s6
1234812332; GFX6-SDAG-NEXT: buffer_load_dword v0, v[0:1], s[4:7], 0 addr64
1234912333; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0)
12350- ; GFX6-SDAG-NEXT: v_lshrrev_b32_e32 v4, 8, v0
12351- ; GFX6-SDAG-NEXT: v_and_b32_e32 v4, 0xff, v4
1235212334; GFX6-SDAG-NEXT: v_lshrrev_b32_e32 v1, 16, v0
12353- ; GFX6-SDAG-NEXT: v_and_b32_e32 v0, 0xff, v0
12354- ; GFX6-SDAG-NEXT: v_lshlrev_b32_e32 v4, 8, v4
12355- ; GFX6-SDAG-NEXT: v_or_b32_e32 v0, v0, v4
12356- ; GFX6-SDAG-NEXT: buffer_store_byte v1, v[2:3], s[4:7], 0 addr64 offset:2
1235712335; GFX6-SDAG-NEXT: buffer_store_short v0, v[2:3], s[4:7], 0 addr64
12336+ ; GFX6-SDAG-NEXT: buffer_store_byte v1, v[2:3], s[4:7], 0 addr64 offset:2
1235812337; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0)
1235912338; GFX6-SDAG-NEXT: s_setpc_b64 s[30:31]
1236012339;
@@ -12392,14 +12371,9 @@ define void @freeze_v3i8(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
1239212371; GFX7-SDAG-NEXT: s_mov_b32 s5, s6
1239312372; GFX7-SDAG-NEXT: buffer_load_dword v0, v[0:1], s[4:7], 0 addr64
1239412373; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
12395- ; GFX7-SDAG-NEXT: v_lshrrev_b32_e32 v4, 8, v0
12396- ; GFX7-SDAG-NEXT: v_and_b32_e32 v4, 0xff, v4
1239712374; GFX7-SDAG-NEXT: v_lshrrev_b32_e32 v1, 16, v0
12398- ; GFX7-SDAG-NEXT: v_and_b32_e32 v0, 0xff, v0
12399- ; GFX7-SDAG-NEXT: v_lshlrev_b32_e32 v4, 8, v4
12400- ; GFX7-SDAG-NEXT: v_or_b32_e32 v0, v0, v4
12401- ; GFX7-SDAG-NEXT: buffer_store_byte v1, v[2:3], s[4:7], 0 addr64 offset:2
1240212375; GFX7-SDAG-NEXT: buffer_store_short v0, v[2:3], s[4:7], 0 addr64
12376+ ; GFX7-SDAG-NEXT: buffer_store_byte v1, v[2:3], s[4:7], 0 addr64 offset:2
1240312377; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
1240412378; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]
1240512379;
@@ -12474,11 +12448,7 @@ define void @freeze_v3i8(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
1247412448; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1247512449; GFX10-SDAG-NEXT: global_load_dword v0, v[0:1], off
1247612450; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0)
12477- ; GFX10-SDAG-NEXT: v_lshrrev_b16 v1, 8, v0
12478- ; GFX10-SDAG-NEXT: v_lshrrev_b32_e32 v4, 16, v0
12479- ; GFX10-SDAG-NEXT: v_lshlrev_b16 v1, 8, v1
12480- ; GFX10-SDAG-NEXT: v_or_b32_sdwa v0, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD
12481- ; GFX10-SDAG-NEXT: global_store_byte v[2:3], v4, off offset:2
12451+ ; GFX10-SDAG-NEXT: global_store_byte_d16_hi v[2:3], v0, off offset:2
1248212452; GFX10-SDAG-NEXT: global_store_short v[2:3], v0, off
1248312453; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]
1248412454;
@@ -12499,36 +12469,15 @@ define void @freeze_v3i8(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
1249912469; GFX10-GISEL-NEXT: global_store_byte_d16_hi v[2:3], v0, off offset:2
1250012470; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]
1250112471;
12502- ; GFX11-SDAG-TRUE16-LABEL: freeze_v3i8:
12503- ; GFX11-SDAG-TRUE16: ; %bb.0:
12504- ; GFX11-SDAG-TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12505- ; GFX11-SDAG-TRUE16-NEXT: global_load_b32 v1, v[0:1], off
12506- ; GFX11-SDAG-TRUE16-NEXT: v_mov_b16_e32 v4.h, 0
12507- ; GFX11-SDAG-TRUE16-NEXT: s_waitcnt vmcnt(0)
12508- ; GFX11-SDAG-TRUE16-NEXT: v_lshrrev_b16 v0.l, 8, v1.l
12509- ; GFX11-SDAG-TRUE16-NEXT: v_and_b16 v0.h, 0xff, v1.l
12510- ; GFX11-SDAG-TRUE16-NEXT: v_mov_b16_e32 v4.l, v1.h
12511- ; GFX11-SDAG-TRUE16-NEXT: v_lshlrev_b16 v0.l, 8, v0.l
12512- ; GFX11-SDAG-TRUE16-NEXT: v_or_b16 v0.l, v0.h, v0.l
12513- ; GFX11-SDAG-TRUE16-NEXT: s_clause 0x1
12514- ; GFX11-SDAG-TRUE16-NEXT: global_store_b8 v[2:3], v4, off offset:2
12515- ; GFX11-SDAG-TRUE16-NEXT: global_store_b16 v[2:3], v0, off
12516- ; GFX11-SDAG-TRUE16-NEXT: s_setpc_b64 s[30:31]
12517- ;
12518- ; GFX11-SDAG-FAKE16-LABEL: freeze_v3i8:
12519- ; GFX11-SDAG-FAKE16: ; %bb.0:
12520- ; GFX11-SDAG-FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12521- ; GFX11-SDAG-FAKE16-NEXT: global_load_b32 v0, v[0:1], off
12522- ; GFX11-SDAG-FAKE16-NEXT: s_waitcnt vmcnt(0)
12523- ; GFX11-SDAG-FAKE16-NEXT: v_lshrrev_b16 v1, 8, v0
12524- ; GFX11-SDAG-FAKE16-NEXT: v_and_b32_e32 v4, 0xff, v0
12525- ; GFX11-SDAG-FAKE16-NEXT: v_lshrrev_b32_e32 v0, 16, v0
12526- ; GFX11-SDAG-FAKE16-NEXT: v_lshlrev_b16 v1, 8, v1
12527- ; GFX11-SDAG-FAKE16-NEXT: v_or_b32_e32 v1, v4, v1
12528- ; GFX11-SDAG-FAKE16-NEXT: s_clause 0x1
12529- ; GFX11-SDAG-FAKE16-NEXT: global_store_b8 v[2:3], v0, off offset:2
12530- ; GFX11-SDAG-FAKE16-NEXT: global_store_b16 v[2:3], v1, off
12531- ; GFX11-SDAG-FAKE16-NEXT: s_setpc_b64 s[30:31]
12472+ ; GFX11-SDAG-LABEL: freeze_v3i8:
12473+ ; GFX11-SDAG: ; %bb.0:
12474+ ; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12475+ ; GFX11-SDAG-NEXT: global_load_b32 v0, v[0:1], off
12476+ ; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0)
12477+ ; GFX11-SDAG-NEXT: s_clause 0x1
12478+ ; GFX11-SDAG-NEXT: global_store_d16_hi_b8 v[2:3], v0, off offset:2
12479+ ; GFX11-SDAG-NEXT: global_store_b16 v[2:3], v0, off
12480+ ; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]
1253212481;
1253312482; GFX11-GISEL-LABEL: freeze_v3i8:
1253412483; GFX11-GISEL: ; %bb.0:
0 commit comments