@@ -654,9 +654,7 @@ define amdgpu_kernel void @fptrunc_v2f64_to_v2f16(
654654; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0)
655655; GFX950-SDAG-NEXT: v_cvt_f32_f64_e32 v2, v[2:3]
656656; GFX950-SDAG-NEXT: v_cvt_f32_f64_e32 v0, v[0:1]
657- ; GFX950-SDAG-NEXT: v_cvt_f16_f32_e32 v1, v2
658- ; GFX950-SDAG-NEXT: v_cvt_f16_f32_e32 v0, v0
659- ; GFX950-SDAG-NEXT: v_lshl_or_b32 v0, v1, 16, v0
657+ ; GFX950-SDAG-NEXT: v_cvt_pk_f16_f32 v0, v0, v2
660658; GFX950-SDAG-NEXT: buffer_store_dword v0, off, s[4:7], 0
661659; GFX950-SDAG-NEXT: s_endpgm
662660;
@@ -668,11 +666,11 @@ define amdgpu_kernel void @fptrunc_v2f64_to_v2f16(
668666; GFX950-GISEL-NEXT: s_mov_b32 s2, -1
669667; GFX950-GISEL-NEXT: s_mov_b32 s3, 0xf000
670668; GFX950-GISEL-NEXT: s_waitcnt lgkmcnt(0)
671- ; GFX950-GISEL-NEXT: v_cvt_f32_f64_e32 v0 , s[4:5]
672- ; GFX950-GISEL-NEXT: v_cvt_f32_f64_e32 v1 , s[6:7]
673- ; GFX950-GISEL-NEXT: v_cvt_f16_f32_e32 v0, v0
674- ; GFX950-GISEL-NEXT: v_cvt_f16_f32_e32 v1, v1
675- ; GFX950-GISEL-NEXT: v_pack_b32_f16 v0, v0, v1
669+ ; GFX950-GISEL-NEXT: v_mov_b64_e32 v[0:1] , s[4:5]
670+ ; GFX950-GISEL-NEXT: v_mov_b64_e32 v[2:3] , s[6:7]
671+ ; GFX950-GISEL-NEXT: v_cvt_f32_f64_e32 v2, v[2:3]
672+ ; GFX950-GISEL-NEXT: v_cvt_f32_f64_e32 v0, v[0:1]
673+ ; GFX950-GISEL-NEXT: v_cvt_pk_f16_f32 v0, v0, v2
676674; GFX950-GISEL-NEXT: buffer_store_dword v0, off, s[0:3], 0
677675; GFX950-GISEL-NEXT: s_endpgm
678676;
0 commit comments