[llvm] [X86][GlobalISel] Added support for FNEG (PR #167919)

Evgenii Kudriashov via llvm-commits llvm-commits at lists.llvm.org
Tue May 5 05:08:58 PDT 2026


================
@@ -143,6 +169,15 @@ define void @fneg_f32_mem(ptr %x, ptr %y) nounwind {
 ; SDAG-X86-NEXT:    movl %edx, (%eax)
 ; SDAG-X86-NEXT:    retl
 ;
+; GISEL-X86-LABEL: fneg_f32_mem:
+; GISEL-X86:       # %bb.0:
+; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
+; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
+; GISEL-X86-NEXT:    flds (%eax)
+; GISEL-X86-NEXT:    fchs
+; GISEL-X86-NEXT:    fstps (%ecx)
----------------
e-kud wrote:

This is interesting. Why does SDAG prefer to use gprs for `fneg_f32_mem` but for `fneg_f32` prefers to use x87.

https://github.com/llvm/llvm-project/pull/167919


More information about the llvm-commits mailing list