[llvm] [AMDGPU] Improve codegen for copysign(x, fneg(y)) (PR #207178)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 21 10:47:31 PDT 2026
================
@@ -2932,11 +2948,31 @@ def : AMDGPUPat <
(S_AND_B32 (S_MOV_B32 (i32 0x80000000)), $src1)
>;
+def : AMDGPUPat <
+ (DivergentBinFrag<fcopysign> (f32 fpimm_zero), (fneg f32:$src1)),
+ (V_BFI_B32_e64 VGPR_32:$src1, (i32 0), (S_MOV_B32 (i32 0x80000000)))
+>;
+
def : AMDGPUPat <
(fcopysign (f32 fpimm_pos_zero), (f32 VGPR_32:$src1)),
(V_AND_B32_e32 (S_MOV_B32 (i32 0x80000000)), $src1)
>;
+def : AMDGPUPat <
----------------
arsenm wrote:
These 2 patterns are pretty similar, do both really fire?
https://github.com/llvm/llvm-project/pull/207178
More information about the llvm-commits
mailing list