[llvm] [X86][NFC] Moved/Updated FNEG testcases (PR #162269)

via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 7 05:38:34 PDT 2025


https://github.com/JaydeepChauhan14 updated https://github.com/llvm/llvm-project/pull/162269

>From a487ace58e9c6737fa9579261af24a55dd8562ac Mon Sep 17 00:00:00 2001
From: Chauhan Jaydeep Ashwinbhai <chauhan.jaydeep.ashwinbhai at intel.com>
Date: Tue, 7 Oct 2025 04:58:54 -0700
Subject: [PATCH 1/2] [X86][NFC] Moved/Updated FNEG testcases

---
 llvm/test/CodeGen/X86/fast-isel-fneg.ll | 101 --------
 llvm/test/CodeGen/X86/isel-fneg.ll      | 311 ++++++++++++++++++++++++
 2 files changed, 311 insertions(+), 101 deletions(-)
 delete mode 100644 llvm/test/CodeGen/X86/fast-isel-fneg.ll
 create mode 100644 llvm/test/CodeGen/X86/isel-fneg.ll

diff --git a/llvm/test/CodeGen/X86/fast-isel-fneg.ll b/llvm/test/CodeGen/X86/fast-isel-fneg.ll
deleted file mode 100644
index 128f5ee0c318b..0000000000000
--- a/llvm/test/CodeGen/X86/fast-isel-fneg.ll
+++ /dev/null
@@ -1,101 +0,0 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc < %s -fast-isel -fast-isel-abort=3 -mtriple=x86_64-apple-darwin10 | FileCheck %s
-; RUN: llc < %s -fast-isel -mtriple=i686-- -mattr=+sse2 | FileCheck --check-prefix=SSE2 %s
-
-define double @fneg_f64(double %x) nounwind {
-; CHECK-LABEL: fneg_f64:
-; CHECK:       ## %bb.0:
-; CHECK-NEXT:    movq %xmm0, %rax
-; CHECK-NEXT:    movabsq $-9223372036854775808, %rcx ## imm = 0x8000000000000000
-; CHECK-NEXT:    xorq %rax, %rcx
-; CHECK-NEXT:    movq %rcx, %xmm0
-; CHECK-NEXT:    retq
-;
-; SSE2-LABEL: fneg_f64:
-; SSE2:       # %bb.0:
-; SSE2-NEXT:    pushl %ebp
-; SSE2-NEXT:    movl %esp, %ebp
-; SSE2-NEXT:    andl $-8, %esp
-; SSE2-NEXT:    subl $8, %esp
-; SSE2-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
-; SSE2-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0
-; SSE2-NEXT:    movlps %xmm0, (%esp)
-; SSE2-NEXT:    fldl (%esp)
-; SSE2-NEXT:    movl %ebp, %esp
-; SSE2-NEXT:    popl %ebp
-; SSE2-NEXT:    retl
-  %y = fneg double %x
-  ret double %y
-}
-
-define float @fneg_f32(float %x) nounwind {
-; CHECK-LABEL: fneg_f32:
-; CHECK:       ## %bb.0:
-; CHECK-NEXT:    movd %xmm0, %eax
-; CHECK-NEXT:    xorl $2147483648, %eax ## imm = 0x80000000
-; CHECK-NEXT:    movd %eax, %xmm0
-; CHECK-NEXT:    retq
-;
-; SSE2-LABEL: fneg_f32:
-; SSE2:       # %bb.0:
-; SSE2-NEXT:    pushl %eax
-; SSE2-NEXT:    movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; SSE2-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0
-; SSE2-NEXT:    movss %xmm0, (%esp)
-; SSE2-NEXT:    flds (%esp)
-; SSE2-NEXT:    popl %eax
-; SSE2-NEXT:    retl
-  %y = fneg float %x
-  ret float %y
-}
-
-define void @fneg_f64_mem(ptr %x, ptr %y) nounwind {
-; CHECK-LABEL: fneg_f64_mem:
-; CHECK:       ## %bb.0:
-; CHECK-NEXT:    movq {{.*#+}} xmm0 = mem[0],zero
-; CHECK-NEXT:    movq %xmm0, %rax
-; CHECK-NEXT:    movabsq $-9223372036854775808, %rcx ## imm = 0x8000000000000000
-; CHECK-NEXT:    xorq %rax, %rcx
-; CHECK-NEXT:    movq %rcx, %xmm0
-; CHECK-NEXT:    movq %xmm0, (%rsi)
-; CHECK-NEXT:    retq
-;
-; SSE2-LABEL: fneg_f64_mem:
-; SSE2:       # %bb.0:
-; SSE2-NEXT:    movl {{[0-9]+}}(%esp), %eax
-; SSE2-NEXT:    movl {{[0-9]+}}(%esp), %ecx
-; SSE2-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
-; SSE2-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0
-; SSE2-NEXT:    movsd %xmm0, (%eax)
-; SSE2-NEXT:    retl
-  %a = load double, ptr %x
-  %b = fneg double %a
-  store double %b, ptr %y
-  ret void
-}
-
-define void @fneg_f32_mem(ptr %x, ptr %y) nounwind {
-; CHECK-LABEL: fneg_f32_mem:
-; CHECK:       ## %bb.0:
-; CHECK-NEXT:    movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; CHECK-NEXT:    movd %xmm0, %eax
-; CHECK-NEXT:    xorl $2147483648, %eax ## imm = 0x80000000
-; CHECK-NEXT:    movd %eax, %xmm0
-; CHECK-NEXT:    movd %xmm0, (%rsi)
-; CHECK-NEXT:    retq
-;
-; SSE2-LABEL: fneg_f32_mem:
-; SSE2:       # %bb.0:
-; SSE2-NEXT:    movl {{[0-9]+}}(%esp), %eax
-; SSE2-NEXT:    movl {{[0-9]+}}(%esp), %ecx
-; SSE2-NEXT:    movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; SSE2-NEXT:    movd %xmm0, %ecx
-; SSE2-NEXT:    xorl $2147483648, %ecx # imm = 0x80000000
-; SSE2-NEXT:    movd %ecx, %xmm0
-; SSE2-NEXT:    movd %xmm0, (%eax)
-; SSE2-NEXT:    retl
-  %a = load float, ptr %x
-  %b = fneg float %a
-  store float %b, ptr %y
-  ret void
-}
diff --git a/llvm/test/CodeGen/X86/isel-fneg.ll b/llvm/test/CodeGen/X86/isel-fneg.ll
new file mode 100644
index 0000000000000..827a6c1b6bc2e
--- /dev/null
+++ b/llvm/test/CodeGen/X86/isel-fneg.ll
@@ -0,0 +1,311 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
+; RUN: llc < %s -mtriple=i686-linux-gnu -fast-isel                            | FileCheck %s --check-prefixes=X86,FASTISEL-X86
+; RUN: llc < %s -mtriple=i686-linux-gnu -global-isel=0 -fast-isel=0           | FileCheck %s --check-prefixes=X86,SDAG-X86
+; DISABLED: llc < %s -mtriple=i686-linux-gnu -global-isel=1 -global-isel-abort=2   | FileCheck %s --check-prefixes=X86,GISEL-X86
+; RUN: llc < %s -mtriple=x86_64-linux-gnu -fast-isel                          | FileCheck %s --check-prefixes=X64,FASTISEL-X64
+; RUN: llc < %s -mtriple=x86_64-linux-gnu -global-isel=0 -fast-isel=0         | FileCheck %s --check-prefixes=X64,SDAG-X64
+; RUN: llc < %s -mtriple=x86_64-linux-gnu -global-isel=1 -global-isel-abort=2 | FileCheck %s --check-prefixes=X64,GISEL-X64
+; RUN: llc < %s -mtriple=i686-linux-gnu -fast-isel -mattr=+sse                            | FileCheck %s --check-prefixes=SSE-X86,FASTISEL-SSE-X86
+; RUN: llc < %s -mtriple=i686-linux-gnu -global-isel=0 -fast-isel=0 -mattr=+sse           | FileCheck %s --check-prefixes=SSE-X86,SDAG-SSE-X86
+; DISABLED: llc < %s -mtriple=i686-linux-gnu -global-isel=1 -global-isel-abort=2 -mattr=+sse   | FileCheck %s --check-prefixes=SSE-X86,GISEL-SSE-X86
+; RUN: llc < %s -mtriple=x86_64-linux-gnu -fast-isel -mattr=+sse                          | FileCheck %s --check-prefixes=SSE-X64,FASTISEL-SSE-X64
+; RUN: llc < %s -mtriple=x86_64-linux-gnu -global-isel=0 -fast-isel=0 -mattr=+sse         | FileCheck %s --check-prefixes=SSE-X64,SDAG-SSE-X64
+; RUN: llc < %s -mtriple=x86_64-linux-gnu -global-isel=1 -global-isel-abort=2 -mattr=+sse | FileCheck %s --check-prefixes=SSE-X64,GISEL-SSE-X64
+
+define double @fneg_f64(double %x) nounwind {
+; X86-LABEL: fneg_f64:
+; X86:       # %bb.0:
+; X86-NEXT:    fldl {{[0-9]+}}(%esp)
+; X86-NEXT:    fchs
+; X86-NEXT:    retl
+;
+; FASTISEL-X64-LABEL: fneg_f64:
+; FASTISEL-X64:       # %bb.0:
+; FASTISEL-X64-NEXT:    movq %xmm0, %rax
+; FASTISEL-X64-NEXT:    movabsq $-9223372036854775808, %rcx # imm = 0x8000000000000000
+; FASTISEL-X64-NEXT:    xorq %rax, %rcx
+; FASTISEL-X64-NEXT:    movq %rcx, %xmm0
+; FASTISEL-X64-NEXT:    retq
+;
+; SDAG-X64-LABEL: fneg_f64:
+; SDAG-X64:       # %bb.0:
+; SDAG-X64-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
+; SDAG-X64-NEXT:    retq
+;
+; GISEL-X64-LABEL: fneg_f64:
+; GISEL-X64:       # %bb.0:
+; GISEL-X64-NEXT:    movabsq $-9223372036854775808, %rax # imm = 0x8000000000000000
+; GISEL-X64-NEXT:    movq %xmm0, %rcx
+; GISEL-X64-NEXT:    xorq %rax, %rcx
+; GISEL-X64-NEXT:    movq %rcx, %xmm0
+; GISEL-X64-NEXT:    retq
+;
+; SSE-X86-LABEL: fneg_f64:
+; SSE-X86:       # %bb.0:
+; SSE-X86-NEXT:    fldl {{[0-9]+}}(%esp)
+; SSE-X86-NEXT:    fchs
+; SSE-X86-NEXT:    retl
+;
+; FASTISEL-SSE-X64-LABEL: fneg_f64:
+; FASTISEL-SSE-X64:       # %bb.0:
+; FASTISEL-SSE-X64-NEXT:    movq %xmm0, %rax
+; FASTISEL-SSE-X64-NEXT:    movabsq $-9223372036854775808, %rcx # imm = 0x8000000000000000
+; FASTISEL-SSE-X64-NEXT:    xorq %rax, %rcx
+; FASTISEL-SSE-X64-NEXT:    movq %rcx, %xmm0
+; FASTISEL-SSE-X64-NEXT:    retq
+;
+; SDAG-SSE-X64-LABEL: fneg_f64:
+; SDAG-SSE-X64:       # %bb.0:
+; SDAG-SSE-X64-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
+; SDAG-SSE-X64-NEXT:    retq
+;
+; GISEL-SSE-X64-LABEL: fneg_f64:
+; GISEL-SSE-X64:       # %bb.0:
+; GISEL-SSE-X64-NEXT:    movabsq $-9223372036854775808, %rax # imm = 0x8000000000000000
+; GISEL-SSE-X64-NEXT:    movq %xmm0, %rcx
+; GISEL-SSE-X64-NEXT:    xorq %rax, %rcx
+; GISEL-SSE-X64-NEXT:    movq %rcx, %xmm0
+; GISEL-SSE-X64-NEXT:    retq
+  %y = fneg double %x
+  ret double %y
+}
+
+define float @fneg_f32(float %x) nounwind {
+; X86-LABEL: fneg_f32:
+; X86:       # %bb.0:
+; X86-NEXT:    flds {{[0-9]+}}(%esp)
+; X86-NEXT:    fchs
+; X86-NEXT:    retl
+;
+; FASTISEL-X64-LABEL: fneg_f32:
+; FASTISEL-X64:       # %bb.0:
+; FASTISEL-X64-NEXT:    movd %xmm0, %eax
+; FASTISEL-X64-NEXT:    xorl $2147483648, %eax # imm = 0x80000000
+; FASTISEL-X64-NEXT:    movd %eax, %xmm0
+; FASTISEL-X64-NEXT:    retq
+;
+; SDAG-X64-LABEL: fneg_f32:
+; SDAG-X64:       # %bb.0:
+; SDAG-X64-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
+; SDAG-X64-NEXT:    retq
+;
+; GISEL-X64-LABEL: fneg_f32:
+; GISEL-X64:       # %bb.0:
+; GISEL-X64-NEXT:    movd %xmm0, %eax
+; GISEL-X64-NEXT:    addl $-2147483648, %eax # imm = 0x80000000
+; GISEL-X64-NEXT:    movd %eax, %xmm0
+; GISEL-X64-NEXT:    retq
+;
+; SSE-X86-LABEL: fneg_f32:
+; SSE-X86:       # %bb.0:
+; SSE-X86-NEXT:    pushl %eax
+; SSE-X86-NEXT:    movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
+; SSE-X86-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0
+; SSE-X86-NEXT:    movss %xmm0, (%esp)
+; SSE-X86-NEXT:    flds (%esp)
+; SSE-X86-NEXT:    popl %eax
+; SSE-X86-NEXT:    retl
+;
+; FASTISEL-SSE-X64-LABEL: fneg_f32:
+; FASTISEL-SSE-X64:       # %bb.0:
+; FASTISEL-SSE-X64-NEXT:    movd %xmm0, %eax
+; FASTISEL-SSE-X64-NEXT:    xorl $2147483648, %eax # imm = 0x80000000
+; FASTISEL-SSE-X64-NEXT:    movd %eax, %xmm0
+; FASTISEL-SSE-X64-NEXT:    retq
+;
+; SDAG-SSE-X64-LABEL: fneg_f32:
+; SDAG-SSE-X64:       # %bb.0:
+; SDAG-SSE-X64-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
+; SDAG-SSE-X64-NEXT:    retq
+;
+; GISEL-SSE-X64-LABEL: fneg_f32:
+; GISEL-SSE-X64:       # %bb.0:
+; GISEL-SSE-X64-NEXT:    movd %xmm0, %eax
+; GISEL-SSE-X64-NEXT:    addl $-2147483648, %eax # imm = 0x80000000
+; GISEL-SSE-X64-NEXT:    movd %eax, %xmm0
+; GISEL-SSE-X64-NEXT:    retq
+  %y = fneg float %x
+  ret float %y
+}
+
+define void @fneg_f64_mem(ptr %x, ptr %y) nounwind {
+; X86-LABEL: fneg_f64_mem:
+; X86:       # %bb.0:
+; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
+; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
+; X86-NEXT:    fldl (%ecx)
+; X86-NEXT:    fchs
+; X86-NEXT:    fstpl (%eax)
+; X86-NEXT:    retl
+;
+; FASTISEL-X64-LABEL: fneg_f64_mem:
+; FASTISEL-X64:       # %bb.0:
+; FASTISEL-X64-NEXT:    movq {{.*#+}} xmm0 = mem[0],zero
+; FASTISEL-X64-NEXT:    movq %xmm0, %rax
+; FASTISEL-X64-NEXT:    movabsq $-9223372036854775808, %rcx # imm = 0x8000000000000000
+; FASTISEL-X64-NEXT:    xorq %rax, %rcx
+; FASTISEL-X64-NEXT:    movq %rcx, %xmm0
+; FASTISEL-X64-NEXT:    movq %xmm0, (%rsi)
+; FASTISEL-X64-NEXT:    retq
+;
+; SDAG-X64-LABEL: fneg_f64_mem:
+; SDAG-X64:       # %bb.0:
+; SDAG-X64-NEXT:    movabsq $-9223372036854775808, %rax # imm = 0x8000000000000000
+; SDAG-X64-NEXT:    xorq (%rdi), %rax
+; SDAG-X64-NEXT:    movq %rax, (%rsi)
+; SDAG-X64-NEXT:    retq
+;
+; GISEL-X64-LABEL: fneg_f64_mem:
+; GISEL-X64:       # %bb.0:
+; GISEL-X64-NEXT:    movabsq $-9223372036854775808, %rax # imm = 0x8000000000000000
+; GISEL-X64-NEXT:    xorq (%rdi), %rax
+; GISEL-X64-NEXT:    movq %rax, (%rsi)
+; GISEL-X64-NEXT:    retq
+;
+; SSE-X86-LABEL: fneg_f64_mem:
+; SSE-X86:       # %bb.0:
+; SSE-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
+; SSE-X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
+; SSE-X86-NEXT:    fldl (%ecx)
+; SSE-X86-NEXT:    fchs
+; SSE-X86-NEXT:    fstpl (%eax)
+; SSE-X86-NEXT:    retl
+;
+; FASTISEL-SSE-X64-LABEL: fneg_f64_mem:
+; FASTISEL-SSE-X64:       # %bb.0:
+; FASTISEL-SSE-X64-NEXT:    movq {{.*#+}} xmm0 = mem[0],zero
+; FASTISEL-SSE-X64-NEXT:    movq %xmm0, %rax
+; FASTISEL-SSE-X64-NEXT:    movabsq $-9223372036854775808, %rcx # imm = 0x8000000000000000
+; FASTISEL-SSE-X64-NEXT:    xorq %rax, %rcx
+; FASTISEL-SSE-X64-NEXT:    movq %rcx, %xmm0
+; FASTISEL-SSE-X64-NEXT:    movq %xmm0, (%rsi)
+; FASTISEL-SSE-X64-NEXT:    retq
+;
+; SDAG-SSE-X64-LABEL: fneg_f64_mem:
+; SDAG-SSE-X64:       # %bb.0:
+; SDAG-SSE-X64-NEXT:    movabsq $-9223372036854775808, %rax # imm = 0x8000000000000000
+; SDAG-SSE-X64-NEXT:    xorq (%rdi), %rax
+; SDAG-SSE-X64-NEXT:    movq %rax, (%rsi)
+; SDAG-SSE-X64-NEXT:    retq
+;
+; GISEL-SSE-X64-LABEL: fneg_f64_mem:
+; GISEL-SSE-X64:       # %bb.0:
+; GISEL-SSE-X64-NEXT:    movabsq $-9223372036854775808, %rax # imm = 0x8000000000000000
+; GISEL-SSE-X64-NEXT:    xorq (%rdi), %rax
+; GISEL-SSE-X64-NEXT:    movq %rax, (%rsi)
+; GISEL-SSE-X64-NEXT:    retq
+  %a = load double, ptr %x
+  %b = fneg double %a
+  store double %b, ptr %y
+  ret void
+}
+
+define void @fneg_f32_mem(ptr %x, ptr %y) nounwind {
+; X86-LABEL: fneg_f32_mem:
+; X86:       # %bb.0:
+; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
+; X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
+; X86-NEXT:    movl $-2147483648, %edx # imm = 0x80000000
+; X86-NEXT:    xorl (%ecx), %edx
+; X86-NEXT:    movl %edx, (%eax)
+; X86-NEXT:    retl
+;
+; FASTISEL-X64-LABEL: fneg_f32_mem:
+; FASTISEL-X64:       # %bb.0:
+; FASTISEL-X64-NEXT:    movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
+; FASTISEL-X64-NEXT:    movd %xmm0, %eax
+; FASTISEL-X64-NEXT:    xorl $2147483648, %eax # imm = 0x80000000
+; FASTISEL-X64-NEXT:    movd %eax, %xmm0
+; FASTISEL-X64-NEXT:    movd %xmm0, (%rsi)
+; FASTISEL-X64-NEXT:    retq
+;
+; SDAG-X64-LABEL: fneg_f32_mem:
+; SDAG-X64:       # %bb.0:
+; SDAG-X64-NEXT:    movl $-2147483648, %eax # imm = 0x80000000
+; SDAG-X64-NEXT:    xorl (%rdi), %eax
+; SDAG-X64-NEXT:    movl %eax, (%rsi)
+; SDAG-X64-NEXT:    retq
+;
+; GISEL-X64-LABEL: fneg_f32_mem:
+; GISEL-X64:       # %bb.0:
+; GISEL-X64-NEXT:    movl $-2147483648, %eax # imm = 0x80000000
+; GISEL-X64-NEXT:    xorl (%rdi), %eax
+; GISEL-X64-NEXT:    movl %eax, (%rsi)
+; GISEL-X64-NEXT:    retq
+;
+; FASTISEL-SSE-X86-LABEL: fneg_f32_mem:
+; FASTISEL-SSE-X86:       # %bb.0:
+; FASTISEL-SSE-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
+; FASTISEL-SSE-X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
+; FASTISEL-SSE-X86-NEXT:    movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
+; FASTISEL-SSE-X86-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0
+; FASTISEL-SSE-X86-NEXT:    movss %xmm0, (%eax)
+; FASTISEL-SSE-X86-NEXT:    retl
+;
+; SDAG-SSE-X86-LABEL: fneg_f32_mem:
+; SDAG-SSE-X86:       # %bb.0:
+; SDAG-SSE-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
+; SDAG-SSE-X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx
+; SDAG-SSE-X86-NEXT:    movl $-2147483648, %edx # imm = 0x80000000
+; SDAG-SSE-X86-NEXT:    xorl (%ecx), %edx
+; SDAG-SSE-X86-NEXT:    movl %edx, (%eax)
+; SDAG-SSE-X86-NEXT:    retl
+;
+; FASTISEL-SSE-X64-LABEL: fneg_f32_mem:
+; FASTISEL-SSE-X64:       # %bb.0:
+; FASTISEL-SSE-X64-NEXT:    movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
+; FASTISEL-SSE-X64-NEXT:    movd %xmm0, %eax
+; FASTISEL-SSE-X64-NEXT:    xorl $2147483648, %eax # imm = 0x80000000
+; FASTISEL-SSE-X64-NEXT:    movd %eax, %xmm0
+; FASTISEL-SSE-X64-NEXT:    movd %xmm0, (%rsi)
+; FASTISEL-SSE-X64-NEXT:    retq
+;
+; SDAG-SSE-X64-LABEL: fneg_f32_mem:
+; SDAG-SSE-X64:       # %bb.0:
+; SDAG-SSE-X64-NEXT:    movl $-2147483648, %eax # imm = 0x80000000
+; SDAG-SSE-X64-NEXT:    xorl (%rdi), %eax
+; SDAG-SSE-X64-NEXT:    movl %eax, (%rsi)
+; SDAG-SSE-X64-NEXT:    retq
+;
+; GISEL-SSE-X64-LABEL: fneg_f32_mem:
+; GISEL-SSE-X64:       # %bb.0:
+; GISEL-SSE-X64-NEXT:    movl $-2147483648, %eax # imm = 0x80000000
+; GISEL-SSE-X64-NEXT:    xorl (%rdi), %eax
+; GISEL-SSE-X64-NEXT:    movl %eax, (%rsi)
+; GISEL-SSE-X64-NEXT:    retq
+  %a = load float, ptr %x
+  %b = fneg float %a
+  store float %b, ptr %y
+  ret void
+}
+
+define x86_fp80 @test_fp80(x86_fp80 %a) nounwind {
+; X86-LABEL: test_fp80:
+; X86:       # %bb.0:
+; X86-NEXT:    fldt {{[0-9]+}}(%esp)
+; X86-NEXT:    fchs
+; X86-NEXT:    retl
+;
+; X64-LABEL: test_fp80:
+; X64:       # %bb.0:
+; X64-NEXT:    fldt {{[0-9]+}}(%rsp)
+; X64-NEXT:    fchs
+; X64-NEXT:    retq
+;
+; SSE-X86-LABEL: test_fp80:
+; SSE-X86:       # %bb.0:
+; SSE-X86-NEXT:    fldt {{[0-9]+}}(%esp)
+; SSE-X86-NEXT:    fchs
+; SSE-X86-NEXT:    retl
+;
+; SSE-X64-LABEL: test_fp80:
+; SSE-X64:       # %bb.0:
+; SSE-X64-NEXT:    fldt {{[0-9]+}}(%rsp)
+; SSE-X64-NEXT:    fchs
+; SSE-X64-NEXT:    retq
+  %1 = fneg x86_fp80 %a
+  ret x86_fp80 %1
+}
+;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
+; FASTISEL-X86: {{.*}}
+; SDAG-X86: {{.*}}

>From 5ec1588efd1c1959712dca19d6227d8ce5596095 Mon Sep 17 00:00:00 2001
From: Chauhan Jaydeep Ashwinbhai <chauhan.jaydeep.ashwinbhai at intel.com>
Date: Tue, 7 Oct 2025 05:37:54 -0700
Subject: [PATCH 2/2] Addressed the review comments

---
 llvm/test/CodeGen/X86/isel-fneg.ll | 96 ------------------------------
 1 file changed, 96 deletions(-)

diff --git a/llvm/test/CodeGen/X86/isel-fneg.ll b/llvm/test/CodeGen/X86/isel-fneg.ll
index 827a6c1b6bc2e..67579992ee040 100644
--- a/llvm/test/CodeGen/X86/isel-fneg.ll
+++ b/llvm/test/CodeGen/X86/isel-fneg.ll
@@ -2,9 +2,6 @@
 ; RUN: llc < %s -mtriple=i686-linux-gnu -fast-isel                            | FileCheck %s --check-prefixes=X86,FASTISEL-X86
 ; RUN: llc < %s -mtriple=i686-linux-gnu -global-isel=0 -fast-isel=0           | FileCheck %s --check-prefixes=X86,SDAG-X86
 ; DISABLED: llc < %s -mtriple=i686-linux-gnu -global-isel=1 -global-isel-abort=2   | FileCheck %s --check-prefixes=X86,GISEL-X86
-; RUN: llc < %s -mtriple=x86_64-linux-gnu -fast-isel                          | FileCheck %s --check-prefixes=X64,FASTISEL-X64
-; RUN: llc < %s -mtriple=x86_64-linux-gnu -global-isel=0 -fast-isel=0         | FileCheck %s --check-prefixes=X64,SDAG-X64
-; RUN: llc < %s -mtriple=x86_64-linux-gnu -global-isel=1 -global-isel-abort=2 | FileCheck %s --check-prefixes=X64,GISEL-X64
 ; RUN: llc < %s -mtriple=i686-linux-gnu -fast-isel -mattr=+sse                            | FileCheck %s --check-prefixes=SSE-X86,FASTISEL-SSE-X86
 ; RUN: llc < %s -mtriple=i686-linux-gnu -global-isel=0 -fast-isel=0 -mattr=+sse           | FileCheck %s --check-prefixes=SSE-X86,SDAG-SSE-X86
 ; DISABLED: llc < %s -mtriple=i686-linux-gnu -global-isel=1 -global-isel-abort=2 -mattr=+sse   | FileCheck %s --check-prefixes=SSE-X86,GISEL-SSE-X86
@@ -19,27 +16,6 @@ define double @fneg_f64(double %x) nounwind {
 ; X86-NEXT:    fchs
 ; X86-NEXT:    retl
 ;
-; FASTISEL-X64-LABEL: fneg_f64:
-; FASTISEL-X64:       # %bb.0:
-; FASTISEL-X64-NEXT:    movq %xmm0, %rax
-; FASTISEL-X64-NEXT:    movabsq $-9223372036854775808, %rcx # imm = 0x8000000000000000
-; FASTISEL-X64-NEXT:    xorq %rax, %rcx
-; FASTISEL-X64-NEXT:    movq %rcx, %xmm0
-; FASTISEL-X64-NEXT:    retq
-;
-; SDAG-X64-LABEL: fneg_f64:
-; SDAG-X64:       # %bb.0:
-; SDAG-X64-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
-; SDAG-X64-NEXT:    retq
-;
-; GISEL-X64-LABEL: fneg_f64:
-; GISEL-X64:       # %bb.0:
-; GISEL-X64-NEXT:    movabsq $-9223372036854775808, %rax # imm = 0x8000000000000000
-; GISEL-X64-NEXT:    movq %xmm0, %rcx
-; GISEL-X64-NEXT:    xorq %rax, %rcx
-; GISEL-X64-NEXT:    movq %rcx, %xmm0
-; GISEL-X64-NEXT:    retq
-;
 ; SSE-X86-LABEL: fneg_f64:
 ; SSE-X86:       # %bb.0:
 ; SSE-X86-NEXT:    fldl {{[0-9]+}}(%esp)
@@ -77,25 +53,6 @@ define float @fneg_f32(float %x) nounwind {
 ; X86-NEXT:    fchs
 ; X86-NEXT:    retl
 ;
-; FASTISEL-X64-LABEL: fneg_f32:
-; FASTISEL-X64:       # %bb.0:
-; FASTISEL-X64-NEXT:    movd %xmm0, %eax
-; FASTISEL-X64-NEXT:    xorl $2147483648, %eax # imm = 0x80000000
-; FASTISEL-X64-NEXT:    movd %eax, %xmm0
-; FASTISEL-X64-NEXT:    retq
-;
-; SDAG-X64-LABEL: fneg_f32:
-; SDAG-X64:       # %bb.0:
-; SDAG-X64-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
-; SDAG-X64-NEXT:    retq
-;
-; GISEL-X64-LABEL: fneg_f32:
-; GISEL-X64:       # %bb.0:
-; GISEL-X64-NEXT:    movd %xmm0, %eax
-; GISEL-X64-NEXT:    addl $-2147483648, %eax # imm = 0x80000000
-; GISEL-X64-NEXT:    movd %eax, %xmm0
-; GISEL-X64-NEXT:    retq
-;
 ; SSE-X86-LABEL: fneg_f32:
 ; SSE-X86:       # %bb.0:
 ; SSE-X86-NEXT:    pushl %eax
@@ -138,30 +95,6 @@ define void @fneg_f64_mem(ptr %x, ptr %y) nounwind {
 ; X86-NEXT:    fstpl (%eax)
 ; X86-NEXT:    retl
 ;
-; FASTISEL-X64-LABEL: fneg_f64_mem:
-; FASTISEL-X64:       # %bb.0:
-; FASTISEL-X64-NEXT:    movq {{.*#+}} xmm0 = mem[0],zero
-; FASTISEL-X64-NEXT:    movq %xmm0, %rax
-; FASTISEL-X64-NEXT:    movabsq $-9223372036854775808, %rcx # imm = 0x8000000000000000
-; FASTISEL-X64-NEXT:    xorq %rax, %rcx
-; FASTISEL-X64-NEXT:    movq %rcx, %xmm0
-; FASTISEL-X64-NEXT:    movq %xmm0, (%rsi)
-; FASTISEL-X64-NEXT:    retq
-;
-; SDAG-X64-LABEL: fneg_f64_mem:
-; SDAG-X64:       # %bb.0:
-; SDAG-X64-NEXT:    movabsq $-9223372036854775808, %rax # imm = 0x8000000000000000
-; SDAG-X64-NEXT:    xorq (%rdi), %rax
-; SDAG-X64-NEXT:    movq %rax, (%rsi)
-; SDAG-X64-NEXT:    retq
-;
-; GISEL-X64-LABEL: fneg_f64_mem:
-; GISEL-X64:       # %bb.0:
-; GISEL-X64-NEXT:    movabsq $-9223372036854775808, %rax # imm = 0x8000000000000000
-; GISEL-X64-NEXT:    xorq (%rdi), %rax
-; GISEL-X64-NEXT:    movq %rax, (%rsi)
-; GISEL-X64-NEXT:    retq
-;
 ; SSE-X86-LABEL: fneg_f64_mem:
 ; SSE-X86:       # %bb.0:
 ; SSE-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
@@ -210,29 +143,6 @@ define void @fneg_f32_mem(ptr %x, ptr %y) nounwind {
 ; X86-NEXT:    movl %edx, (%eax)
 ; X86-NEXT:    retl
 ;
-; FASTISEL-X64-LABEL: fneg_f32_mem:
-; FASTISEL-X64:       # %bb.0:
-; FASTISEL-X64-NEXT:    movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; FASTISEL-X64-NEXT:    movd %xmm0, %eax
-; FASTISEL-X64-NEXT:    xorl $2147483648, %eax # imm = 0x80000000
-; FASTISEL-X64-NEXT:    movd %eax, %xmm0
-; FASTISEL-X64-NEXT:    movd %xmm0, (%rsi)
-; FASTISEL-X64-NEXT:    retq
-;
-; SDAG-X64-LABEL: fneg_f32_mem:
-; SDAG-X64:       # %bb.0:
-; SDAG-X64-NEXT:    movl $-2147483648, %eax # imm = 0x80000000
-; SDAG-X64-NEXT:    xorl (%rdi), %eax
-; SDAG-X64-NEXT:    movl %eax, (%rsi)
-; SDAG-X64-NEXT:    retq
-;
-; GISEL-X64-LABEL: fneg_f32_mem:
-; GISEL-X64:       # %bb.0:
-; GISEL-X64-NEXT:    movl $-2147483648, %eax # imm = 0x80000000
-; GISEL-X64-NEXT:    xorl (%rdi), %eax
-; GISEL-X64-NEXT:    movl %eax, (%rsi)
-; GISEL-X64-NEXT:    retq
-;
 ; FASTISEL-SSE-X86-LABEL: fneg_f32_mem:
 ; FASTISEL-SSE-X86:       # %bb.0:
 ; FASTISEL-SSE-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax
@@ -286,12 +196,6 @@ define x86_fp80 @test_fp80(x86_fp80 %a) nounwind {
 ; X86-NEXT:    fchs
 ; X86-NEXT:    retl
 ;
-; X64-LABEL: test_fp80:
-; X64:       # %bb.0:
-; X64-NEXT:    fldt {{[0-9]+}}(%rsp)
-; X64-NEXT:    fchs
-; X64-NEXT:    retq
-;
 ; SSE-X86-LABEL: test_fp80:
 ; SSE-X86:       # %bb.0:
 ; SSE-X86-NEXT:    fldt {{[0-9]+}}(%esp)



More information about the llvm-commits mailing list