@@ -6398,8 +6398,10 @@ define <2 x half> @buffer_fat_ptr_agent_atomic_fadd_ret_v2f16__offset__amdgpu_no
63986398; GFX8-NEXT: ; =>This Inner Loop Header: Depth=1
63996399; GFX8-NEXT: s_waitcnt vmcnt(0)
64006400; GFX8-NEXT: v_mov_b32_e32 v5, v0
6401- ; GFX8-NEXT: v_add_f16_sdwa v0, v5, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_1
6401+ ; GFX8-NEXT: v_lshrrev_b32_e32 v0, 16, v5
6402+ ; GFX8-NEXT: v_add_f16_sdwa v0, v0, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
64026403; GFX8-NEXT: v_add_f16_e32 v1, v5, v2
6404+ ; GFX8-NEXT: v_lshlrev_b32_e32 v0, 16, v0
64036405; GFX8-NEXT: v_or_b32_e32 v4, v1, v0
64046406; GFX8-NEXT: v_mov_b32_e32 v0, v4
64056407; GFX8-NEXT: v_mov_b32_e32 v1, v5
@@ -6625,8 +6627,10 @@ define void @buffer_fat_ptr_agent_atomic_fadd_noret_v2f16__offset__amdgpu_no_fin
66256627; GFX8-NEXT: .LBB20_1: ; %atomicrmw.start
66266628; GFX8-NEXT: ; =>This Inner Loop Header: Depth=1
66276629; GFX8-NEXT: s_waitcnt vmcnt(0)
6628- ; GFX8-NEXT: v_add_f16_sdwa v1, v2, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_1
6630+ ; GFX8-NEXT: v_lshrrev_b32_e32 v1, 16, v2
6631+ ; GFX8-NEXT: v_add_f16_sdwa v1, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
66296632; GFX8-NEXT: v_add_f16_e32 v4, v2, v0
6633+ ; GFX8-NEXT: v_lshlrev_b32_e32 v1, 16, v1
66306634; GFX8-NEXT: v_or_b32_e32 v1, v4, v1
66316635; GFX8-NEXT: v_mov_b32_e32 v5, v2
66326636; GFX8-NEXT: v_mov_b32_e32 v4, v1
@@ -7044,7 +7048,9 @@ define <2 x half> @buffer_fat_ptr_agent_atomic_fadd_ret_v2f16__offset__waterfall
70447048; GFX8-NEXT: ; =>This Loop Header: Depth=1
70457049; GFX8-NEXT: ; Child Loop BB21_4 Depth 2
70467050; GFX8-NEXT: s_waitcnt vmcnt(0)
7047- ; GFX8-NEXT: v_add_f16_sdwa v4, v8, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_1
7051+ ; GFX8-NEXT: v_lshrrev_b32_e32 v4, 16, v8
7052+ ; GFX8-NEXT: v_add_f16_sdwa v4, v4, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
7053+ ; GFX8-NEXT: v_lshlrev_b32_e32 v4, 16, v4
70487054; GFX8-NEXT: v_add_f16_e32 v6, v8, v5
70497055; GFX8-NEXT: v_or_b32_e32 v7, v6, v4
70507056; GFX8-NEXT: v_mov_b32_e32 v6, v7
@@ -7390,8 +7396,10 @@ define <2 x half> @buffer_fat_ptr_agent_atomic_fadd_ret_v2f16__offset(ptr addrsp
73907396; GFX8-NEXT: ; =>This Inner Loop Header: Depth=1
73917397; GFX8-NEXT: s_waitcnt vmcnt(0)
73927398; GFX8-NEXT: v_mov_b32_e32 v5, v0
7393- ; GFX8-NEXT: v_add_f16_sdwa v0, v5, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_1
7399+ ; GFX8-NEXT: v_lshrrev_b32_e32 v0, 16, v5
7400+ ; GFX8-NEXT: v_add_f16_sdwa v0, v0, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
73947401; GFX8-NEXT: v_add_f16_e32 v1, v5, v2
7402+ ; GFX8-NEXT: v_lshlrev_b32_e32 v0, 16, v0
73957403; GFX8-NEXT: v_or_b32_e32 v4, v1, v0
73967404; GFX8-NEXT: v_mov_b32_e32 v0, v4
73977405; GFX8-NEXT: v_mov_b32_e32 v1, v5
@@ -7650,8 +7658,10 @@ define void @buffer_fat_ptr_agent_atomic_fadd_noret_v2f16__offset(ptr addrspace(
76507658; GFX8-NEXT: .LBB23_1: ; %atomicrmw.start
76517659; GFX8-NEXT: ; =>This Inner Loop Header: Depth=1
76527660; GFX8-NEXT: s_waitcnt vmcnt(0)
7653- ; GFX8-NEXT: v_add_f16_sdwa v1, v2, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_1
7661+ ; GFX8-NEXT: v_lshrrev_b32_e32 v1, 16, v2
7662+ ; GFX8-NEXT: v_add_f16_sdwa v1, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
76547663; GFX8-NEXT: v_add_f16_e32 v4, v2, v0
7664+ ; GFX8-NEXT: v_lshlrev_b32_e32 v1, 16, v1
76557665; GFX8-NEXT: v_or_b32_e32 v1, v4, v1
76567666; GFX8-NEXT: v_mov_b32_e32 v5, v2
76577667; GFX8-NEXT: v_mov_b32_e32 v4, v1
@@ -7915,8 +7925,10 @@ define <2 x half> @buffer_fat_ptr_agent_atomic_fadd_ret_v2f16__offset__amdgpu_no
79157925; GFX8-NEXT: ; =>This Inner Loop Header: Depth=1
79167926; GFX8-NEXT: s_waitcnt vmcnt(0)
79177927; GFX8-NEXT: v_mov_b32_e32 v5, v0
7918- ; GFX8-NEXT: v_add_f16_sdwa v0, v5, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_1
7928+ ; GFX8-NEXT: v_lshrrev_b32_e32 v0, 16, v5
7929+ ; GFX8-NEXT: v_add_f16_sdwa v0, v0, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
79197930; GFX8-NEXT: v_add_f16_e32 v1, v5, v2
7931+ ; GFX8-NEXT: v_lshlrev_b32_e32 v0, 16, v0
79207932; GFX8-NEXT: v_or_b32_e32 v4, v1, v0
79217933; GFX8-NEXT: v_mov_b32_e32 v0, v4
79227934; GFX8-NEXT: v_mov_b32_e32 v1, v5
@@ -8175,8 +8187,10 @@ define void @buffer_fat_ptr_agent_atomic_fadd_noret_v2f16__offset__amdgpu_no_rem
81758187; GFX8-NEXT: .LBB25_1: ; %atomicrmw.start
81768188; GFX8-NEXT: ; =>This Inner Loop Header: Depth=1
81778189; GFX8-NEXT: s_waitcnt vmcnt(0)
8178- ; GFX8-NEXT: v_add_f16_sdwa v1, v2, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_1
8190+ ; GFX8-NEXT: v_lshrrev_b32_e32 v1, 16, v2
8191+ ; GFX8-NEXT: v_add_f16_sdwa v1, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
81798192; GFX8-NEXT: v_add_f16_e32 v4, v2, v0
8193+ ; GFX8-NEXT: v_lshlrev_b32_e32 v1, 16, v1
81808194; GFX8-NEXT: v_or_b32_e32 v1, v4, v1
81818195; GFX8-NEXT: v_mov_b32_e32 v5, v2
81828196; GFX8-NEXT: v_mov_b32_e32 v4, v1
0 commit comments