[llvm] Fold fneg through FP16_TO_FP and FP_TO_FP16 in getNegatedExpression. (PR #178865)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 30 03:23:34 PST 2026
================
@@ -45,9 +45,10 @@ define half @v_fneg_add_f16_nsz(half %a, half %b) #0 {
; SI-LABEL: v_fneg_add_f16_nsz:
; SI: ; %bb.0:
; SI-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-; SI-NEXT: v_cvt_f32_f16_e32 v1, v1
+; SI-NEXT: v_and_b32_e32 v1, 0xffff, v1
+; SI-NEXT: v_cvt_f32_f16_e64 v1, -v1
; SI-NEXT: v_cvt_f32_f16_e64 v0, -v0
-; SI-NEXT: v_sub_f32_e32 v0, v0, v1
+; SI-NEXT: v_add_f32_e32 v0, v0, v1
----------------
arsenm wrote:
All of these test changes look like regressions. It's worse to break the v_sub_f32 to introduce the source modifier
https://github.com/llvm/llvm-project/pull/178865
More information about the llvm-commits
mailing list