@@ -792,19 +792,22 @@ define amdgpu_kernel void @test_fold_canonicalize_fpround_value_v2f16_v2f32(ptr
792
792
; VI: ; %bb.0:
793
793
; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24
794
794
; VI-NEXT: v_lshlrev_b32_e32 v1, 3, v0
795
+ ; VI-NEXT: v_mov_b32_e32 v3, 0x3c00
795
796
; VI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
796
797
; VI-NEXT: s_waitcnt lgkmcnt(0)
797
798
; VI-NEXT: v_mov_b32_e32 v2, s1
798
799
; VI-NEXT: v_add_u32_e32 v1, vcc, s0, v1
799
800
; VI-NEXT: v_addc_u32_e32 v2, vcc, 0, v2, vcc
800
801
; VI-NEXT: flat_load_dwordx2 v[1:2], v[1:2]
801
- ; VI-NEXT: v_mov_b32_e32 v3 , s3
802
+ ; VI-NEXT: v_mov_b32_e32 v4 , s3
802
803
; VI-NEXT: v_add_u32_e32 v0, vcc, s2, v0
803
804
; VI-NEXT: s_waitcnt vmcnt(0)
804
805
; VI-NEXT: v_cvt_f16_f32_e32 v1, v1
805
- ; VI-NEXT: v_cvt_f16_f32_sdwa v2, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
806
+ ; VI-NEXT: v_cvt_f16_f32_e32 v2, v2
807
+ ; VI-NEXT: v_mul_f16_e32 v1, 1.0, v1
808
+ ; VI-NEXT: v_mul_f16_sdwa v2, v2, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
806
809
; VI-NEXT: v_or_b32_e32 v2, v1, v2
807
- ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v3 , vcc
810
+ ; VI-NEXT: v_addc_u32_e32 v1, vcc, 0, v4 , vcc
808
811
; VI-NEXT: flat_store_dword v[0:1], v2
809
812
; VI-NEXT: s_endpgm
810
813
;
@@ -1914,8 +1917,10 @@ define <2 x half> @v_test_canonicalize_build_vector_v2f16(<2 x half> %vec) {
1914
1917
; VI-LABEL: v_test_canonicalize_build_vector_v2f16:
1915
1918
; VI: ; %bb.0:
1916
1919
; VI-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1917
- ; VI-NEXT: v_mov_b32_e32 v2, 0x4400
1918
1920
; VI-NEXT: v_add_f16_e32 v1, 1.0, v0
1921
+ ; VI-NEXT: v_mul_f16_e32 v0, 4.0, v0
1922
+ ; VI-NEXT: v_mov_b32_e32 v2, 0x3c00
1923
+ ; VI-NEXT: v_mul_f16_e32 v1, 1.0, v1
1919
1924
; VI-NEXT: v_mul_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
1920
1925
; VI-NEXT: v_or_b32_e32 v0, v1, v0
1921
1926
; VI-NEXT: s_setpc_b64 s[30:31]
@@ -1945,7 +1950,9 @@ define <2 x half> @v_test_canonicalize_build_vector_noncanon1_v2f16(<2 x half> %
1945
1950
; VI: ; %bb.0:
1946
1951
; VI-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1947
1952
; VI-NEXT: v_add_f16_e32 v1, 1.0, v0
1948
- ; 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
1953
+ ; VI-NEXT: v_mov_b32_e32 v2, 0x3c00
1954
+ ; VI-NEXT: v_mul_f16_e32 v1, 1.0, v1
1955
+ ; VI-NEXT: v_mul_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
1949
1956
; VI-NEXT: v_or_b32_e32 v0, v1, v0
1950
1957
; VI-NEXT: s_setpc_b64 s[30:31]
1951
1958
;
@@ -1972,8 +1979,9 @@ define <2 x half> @v_test_canonicalize_build_vector_noncanon0_v2f16(<2 x half> %
1972
1979
; VI: ; %bb.0:
1973
1980
; VI-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1974
1981
; VI-NEXT: v_mov_b32_e32 v1, 0x3c00
1975
- ; VI-NEXT: v_add_f16_sdwa v1, v0, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
1976
- ; VI-NEXT: v_max_f16_e32 v0, v0, v0
1982
+ ; VI-NEXT: v_add_f16_sdwa v2, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
1983
+ ; VI-NEXT: v_mul_f16_e32 v0, 1.0, v0
1984
+ ; VI-NEXT: v_mul_f16_sdwa v1, v2, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD
1977
1985
; VI-NEXT: v_or_b32_e32 v0, v0, v1
1978
1986
; VI-NEXT: s_setpc_b64 s[30:31]
1979
1987
;
@@ -2032,9 +2040,10 @@ define <2 x half> @v_test_canonicalize_insertelement_noncanon_vec_v2f16(<2 x hal
2032
2040
; VI-NEXT: v_or_b32_e32 v1, v1, v3
2033
2041
; VI-NEXT: v_lshlrev_b32_e64 v2, v2, s4
2034
2042
; VI-NEXT: v_bfi_b32 v0, v2, v1, v0
2035
- ; 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
2036
- ; VI-NEXT: v_max_f16_e32 v0, v0, v0
2037
- ; VI-NEXT: v_or_b32_e32 v0, v0, v1
2043
+ ; VI-NEXT: v_mov_b32_e32 v2, 0x3c00
2044
+ ; VI-NEXT: v_mul_f16_e32 v1, 1.0, v0
2045
+ ; VI-NEXT: v_mul_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
2046
+ ; VI-NEXT: v_or_b32_e32 v0, v1, v0
2038
2047
; VI-NEXT: s_setpc_b64 s[30:31]
2039
2048
;
2040
2049
; GFX9-LABEL: v_test_canonicalize_insertelement_noncanon_vec_v2f16:
@@ -2073,9 +2082,10 @@ define <2 x half> @v_test_canonicalize_insertelement_noncanon_insval_v2f16(<2 x
2073
2082
; VI-NEXT: v_or_b32_sdwa v1, v1, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel:DWORD
2074
2083
; VI-NEXT: v_lshlrev_b32_e64 v2, v2, s4
2075
2084
; VI-NEXT: v_bfi_b32 v0, v2, v1, v0
2076
- ; 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
2077
- ; VI-NEXT: v_max_f16_e32 v0, v0, v0
2078
- ; VI-NEXT: v_or_b32_e32 v0, v0, v1
2085
+ ; VI-NEXT: v_mov_b32_e32 v2, 0x3c00
2086
+ ; VI-NEXT: v_mul_f16_e32 v1, 1.0, v0
2087
+ ; VI-NEXT: v_mul_f16_sdwa v0, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
2088
+ ; VI-NEXT: v_or_b32_e32 v0, v1, v0
2079
2089
; VI-NEXT: s_setpc_b64 s[30:31]
2080
2090
;
2081
2091
; GFX9-LABEL: v_test_canonicalize_insertelement_noncanon_insval_v2f16:
0 commit comments