@@ -427,18 +427,16 @@ entry:
427427define amdgpu_ps void @fptrunc_f64_to_bf16_abs (double %a , ptr %out ) {
428428; GFX-942-LABEL: fptrunc_f64_to_bf16_abs:
429429; GFX-942: ; %bb.0: ; %entry
430- ; GFX-942-NEXT: v_cvt_f32_f64_e64 v8, |v[0:1]|
431- ; GFX-942-NEXT: v_and_b32_e32 v5, 0x7fffffff, v1
432- ; GFX-942-NEXT: v_mov_b32_e32 v4, v0
433- ; GFX-942-NEXT: v_cvt_f64_f32_e32 v[6:7], v8
434- ; GFX-942-NEXT: v_and_b32_e32 v9, 1, v8
435- ; GFX-942-NEXT: v_cmp_gt_f64_e64 s[2:3], |v[4:5]|, |v[6:7]|
436- ; GFX-942-NEXT: v_cmp_nlg_f64_e64 s[0:1], |v[0:1]|, v[6:7]
437- ; GFX-942-NEXT: v_cmp_eq_u32_e32 vcc, 1, v9
430+ ; GFX-942-NEXT: v_cvt_f32_f64_e64 v6, |v[0:1]|
431+ ; GFX-942-NEXT: v_cvt_f64_f32_e32 v[4:5], v6
432+ ; GFX-942-NEXT: v_and_b32_e32 v7, 1, v6
433+ ; GFX-942-NEXT: v_cmp_gt_f64_e64 s[2:3], |v[0:1]|, |v[4:5]|
434+ ; GFX-942-NEXT: v_cmp_nlg_f64_e64 s[0:1], |v[0:1]|, v[4:5]
435+ ; GFX-942-NEXT: v_cmp_eq_u32_e32 vcc, 1, v7
438436; GFX-942-NEXT: v_cndmask_b32_e64 v4, -1, 1, s[2:3]
439- ; GFX-942-NEXT: v_add_u32_e32 v4, v8 , v4
437+ ; GFX-942-NEXT: v_add_u32_e32 v4, v6 , v4
440438; GFX-942-NEXT: s_or_b64 vcc, s[0:1], vcc
441- ; GFX-942-NEXT: v_cndmask_b32_e32 v4, v4, v8 , vcc
439+ ; GFX-942-NEXT: v_cndmask_b32_e32 v4, v4, v6 , vcc
442440; GFX-942-NEXT: v_bfe_u32 v5, v4, 16, 1
443441; GFX-942-NEXT: s_movk_i32 s0, 0x7fff
444442; GFX-942-NEXT: v_add3_u32 v5, v5, v4, s0
@@ -451,18 +449,16 @@ define amdgpu_ps void @fptrunc_f64_to_bf16_abs(double %a, ptr %out) {
451449;
452450; GFX-950-LABEL: fptrunc_f64_to_bf16_abs:
453451; GFX-950: ; %bb.0: ; %entry
454- ; GFX-950-NEXT: v_cvt_f32_f64_e64 v8, |v[0:1]|
455- ; GFX-950-NEXT: v_and_b32_e32 v5, 0x7fffffff, v1
456- ; GFX-950-NEXT: v_mov_b32_e32 v4, v0
457- ; GFX-950-NEXT: v_cvt_f64_f32_e32 v[6:7], v8
458- ; GFX-950-NEXT: v_cmp_nlg_f64_e64 s[0:1], |v[0:1]|, v[6:7]
459- ; GFX-950-NEXT: v_and_b32_e32 v0, 1, v8
460- ; GFX-950-NEXT: v_cmp_gt_f64_e64 s[2:3], |v[4:5]|, |v[6:7]|
461- ; GFX-950-NEXT: v_cmp_eq_u32_e32 vcc, 1, v0
462- ; GFX-950-NEXT: s_or_b64 vcc, s[0:1], vcc
452+ ; GFX-950-NEXT: v_cvt_f32_f64_e64 v6, |v[0:1]|
453+ ; GFX-950-NEXT: v_cvt_f64_f32_e32 v[4:5], v6
454+ ; GFX-950-NEXT: v_and_b32_e32 v7, 1, v6
455+ ; GFX-950-NEXT: v_cmp_gt_f64_e64 s[2:3], |v[0:1]|, |v[4:5]|
456+ ; GFX-950-NEXT: v_cmp_nlg_f64_e64 s[0:1], |v[0:1]|, v[4:5]
457+ ; GFX-950-NEXT: v_cmp_eq_u32_e32 vcc, 1, v7
463458; GFX-950-NEXT: v_cndmask_b32_e64 v0, -1, 1, s[2:3]
464- ; GFX-950-NEXT: v_add_u32_e32 v0, v8, v0
465- ; GFX-950-NEXT: v_cndmask_b32_e32 v0, v0, v8, vcc
459+ ; GFX-950-NEXT: v_add_u32_e32 v0, v6, v0
460+ ; GFX-950-NEXT: s_or_b64 vcc, s[0:1], vcc
461+ ; GFX-950-NEXT: v_cndmask_b32_e32 v0, v0, v6, vcc
466462; GFX-950-NEXT: v_cvt_pk_bf16_f32 v0, v0, s0
467463; GFX-950-NEXT: flat_store_short v[2:3], v0
468464; GFX-950-NEXT: s_endpgm
0 commit comments