@@ -690,19 +690,22 @@ define amdgpu_kernel void @test_fold_canonicalize_fpround_value_v2f16_v2f32(ptr
690
690
; VI: ; %bb.0:
691
691
; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24
692
692
; VI-NEXT: v_lshlrev_b32_e32 v1, 3, v0
693
+ ; VI-NEXT: v_mov_b32_e32 v3, 0x3c00
693
694
; VI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
694
695
; VI-NEXT: s_waitcnt lgkmcnt(0)
695
696
; VI-NEXT: v_mov_b32_e32 v2, s1
696
697
; VI-NEXT: v_add_u32_e32 v1, vcc, s0, v1
697
698
; VI-NEXT: v_addc_u32_e32 v2, vcc, 0, v2, vcc
698
699
; VI-NEXT: flat_load_dwordx2 v[1:2], v[1:2]
699
- ; VI-NEXT: v_mov_b32_e32 v3 , s3
700
+ ; VI-NEXT: v_mov_b32_e32 v4 , s3
700
701
; VI-NEXT: v_add_u32_e32 v0, vcc, s2, v0
701
702
; VI-NEXT: s_waitcnt vmcnt(0)
702
703
; VI-NEXT: v_cvt_f16_f32_e32 v1, v1
703
- ; VI-NEXT: v_cvt_f16_f32_sdwa v2, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
704
+ ; VI-NEXT: v_cvt_f16_f32_e32 v2, v2
705
+ ; VI-NEXT: v_mul_f16_e32 v1, 1.0, v1
706
+ ; VI-NEXT: v_mul_f16_sdwa v2, v2, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
704
707
; VI-NEXT: v_or_b32_e32 v2, v1, v2
705
- ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v3 , vcc
708
+ ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v4 , vcc
706
709
; VI-NEXT: flat_store_dword v[0:1], v2
707
710
; VI-NEXT: s_endpgm
708
711
;
@@ -1666,8 +1669,10 @@ define <2 x half> @v_test_canonicalize_build_vector_v2f16(<2 x half> %vec) {
1666
1669
; VI-LABEL: v_test_canonicalize_build_vector_v2f16:
1667
1670
; VI: ; %bb.0:
1668
1671
; VI-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1669
- ; VI-NEXT: v_mov_b32_e32 v2, 0x4400
1670
1672
; VI-NEXT: v_add_f16_e32 v1, 1.0, v0
1673
+ ; VI-NEXT: v_mul_f16_e32 v0, 4.0, v0
1674
+ ; VI-NEXT: v_mov_b32_e32 v2, 0x3c00
1675
+ ; VI-NEXT: v_mul_f16_e32 v1, 1.0, v1
1671
1676
; VI-NEXT: v_mul_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
1672
1677
; VI-NEXT: v_or_b32_e32 v0, v1, v0
1673
1678
; VI-NEXT: s_setpc_b64 s[30:31]
@@ -1694,7 +1699,9 @@ define <2 x half> @v_test_canonicalize_build_vector_noncanon1_v2f16(<2 x half> %
1694
1699
; VI: ; %bb.0:
1695
1700
; VI-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1696
1701
; VI-NEXT: v_add_f16_e32 v1, 1.0, v0
1697
- ; VI-NEXT: v_max_f16_sdwa v0, v0, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_1
1702
+ ; VI-NEXT: v_mov_b32_e32 v2, 0x3c00
1703
+ ; VI-NEXT: v_mul_f16_e32 v1, 1.0, v1
1704
+ ; VI-NEXT: v_mul_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
1698
1705
; VI-NEXT: v_or_b32_e32 v0, v1, v0
1699
1706
; VI-NEXT: s_setpc_b64 s[30:31]
1700
1707
;
@@ -1718,8 +1725,9 @@ define <2 x half> @v_test_canonicalize_build_vector_noncanon0_v2f16(<2 x half> %
1718
1725
; VI: ; %bb.0:
1719
1726
; VI-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1720
1727
; VI-NEXT: v_mov_b32_e32 v1, 0x3c00
1721
- ; VI-NEXT: v_add_f16_sdwa v1, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
1722
- ; VI-NEXT: v_max_f16_e32 v0, v0, v0
1728
+ ; VI-NEXT: v_add_f16_sdwa v2, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
1729
+ ; VI-NEXT: v_mul_f16_e32 v0, 1.0, v0
1730
+ ; VI-NEXT: v_mul_f16_sdwa v1, v2, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
1723
1731
; VI-NEXT: v_or_b32_e32 v0, v0, v1
1724
1732
; VI-NEXT: s_setpc_b64 s[30:31]
1725
1733
;
@@ -1770,9 +1778,10 @@ define <2 x half> @v_test_canonicalize_insertelement_noncanon_vec_v2f16(<2 x hal
1770
1778
; VI-NEXT: v_or_b32_e32 v1, v1, v3
1771
1779
; VI-NEXT: v_lshlrev_b32_e64 v2, v2, s4
1772
1780
; VI-NEXT: v_bfi_b32 v0, v2, v1, v0
1773
- ; VI-NEXT: v_max_f16_sdwa v1, v0, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_1
1774
- ; VI-NEXT: v_max_f16_e32 v0, v0, v0
1775
- ; VI-NEXT: v_or_b32_e32 v0, v0, v1
1781
+ ; VI-NEXT: v_mov_b32_e32 v2, 0x3c00
1782
+ ; VI-NEXT: v_mul_f16_e32 v1, 1.0, v0
1783
+ ; VI-NEXT: v_mul_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
1784
+ ; VI-NEXT: v_or_b32_e32 v0, v1, v0
1776
1785
; VI-NEXT: s_setpc_b64 s[30:31]
1777
1786
;
1778
1787
; GFX9-LABEL: v_test_canonicalize_insertelement_noncanon_vec_v2f16:
@@ -1807,9 +1816,10 @@ define <2 x half> @v_test_canonicalize_insertelement_noncanon_insval_v2f16(<2 x
1807
1816
; VI-NEXT: v_or_b32_sdwa v1, v1, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
1808
1817
; VI-NEXT: v_lshlrev_b32_e64 v2, v2, s4
1809
1818
; VI-NEXT: v_bfi_b32 v0, v2, v1, v0
1810
- ; VI-NEXT: v_max_f16_sdwa v1, v0, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:WORD_1
1811
- ; VI-NEXT: v_max_f16_e32 v0, v0, v0
1812
- ; VI-NEXT: v_or_b32_e32 v0, v0, v1
1819
+ ; VI-NEXT: v_mov_b32_e32 v2, 0x3c00
1820
+ ; VI-NEXT: v_mul_f16_e32 v1, 1.0, v0
1821
+ ; VI-NEXT: v_mul_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
1822
+ ; VI-NEXT: v_or_b32_e32 v0, v1, v0
1813
1823
; VI-NEXT: s_setpc_b64 s[30:31]
1814
1824
;
1815
1825
; GFX9-LABEL: v_test_canonicalize_insertelement_noncanon_insval_v2f16:
0 commit comments