[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