[llvm] 7e4029d - [X86][NFC] Added/Updated SQRT function testcases (#132205)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 20 17:57:11 PDT 2025
Author: JaydeepChauhan14
Date: 2025-03-21T01:57:05+01:00
New Revision: 7e4029d52a4bfb101f7d009799e54c51e7ca7467
URL: https://github.com/llvm/llvm-project/commit/7e4029d52a4bfb101f7d009799e54c51e7ca7467
DIFF: https://github.com/llvm/llvm-project/commit/7e4029d52a4bfb101f7d009799e54c51e7ca7467.diff
LOG: [X86][NFC] Added/Updated SQRT function testcases (#132205)
- Added test for x86_fp80 type for SQRT.
- Added global-isel runs as precommit testing for SQRT.
Added:
llvm/test/CodeGen/X86/isel-sqrt.ll
Modified:
Removed:
llvm/test/CodeGen/X86/sqrt.ll
################################################################################
diff --git a/llvm/test/CodeGen/X86/isel-sqrt.ll b/llvm/test/CodeGen/X86/isel-sqrt.ll
new file mode 100644
index 0000000000000..9ac68a11d748c
--- /dev/null
+++ b/llvm/test/CodeGen/X86/isel-sqrt.ll
@@ -0,0 +1,74 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx,+sse2 | FileCheck %s --check-prefixes=X64,SSE2
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx,+sse2 -fast-isel | FileCheck %s --check-prefixes=X64,SSE2
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx,+sse2 -global-isel -global-isel-abort=2 | FileCheck %s --check-prefixes=X64,SSE2
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx2,+avx | FileCheck %s --check-prefixes=X64,AVX
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx2,+avx -fast-isel | FileCheck %s --check-prefixes=X64,AVX
+; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx2,+avx -global-isel -global-isel-abort=2 | FileCheck %s --check-prefixes=X64,AVX
+; RUN: llc < %s -mtriple=i686-linux-gnu -global-isel=0 -fast-isel=0 | FileCheck %s --check-prefixes=X86,SDAG-X86
+; 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 -global-isel-abort=2 | FileCheck %s --check-prefixes=X86,GISEL-X86
+
+define float @test_sqrt_f32(float %a) {
+; SSE2-LABEL: test_sqrt_f32:
+; SSE2: ## %bb.0:
+; SSE2-NEXT: sqrtss %xmm0, %xmm0
+; SSE2-NEXT: retq
+;
+; AVX-LABEL: test_sqrt_f32:
+; AVX: ## %bb.0:
+; AVX-NEXT: vsqrtss %xmm0, %xmm0, %xmm0
+; AVX-NEXT: retq
+;
+; X86-LABEL: test_sqrt_f32:
+; X86: # %bb.0:
+; X86-NEXT: flds {{[0-9]+}}(%esp)
+; X86-NEXT: fsqrt
+; X86-NEXT: retl
+ %res = call float @llvm.sqrt.f32(float %a)
+ ret float %res
+}
+declare float @llvm.sqrt.f32(float) nounwind readnone
+
+define double @test_sqrt_f64(double %a) {
+; SSE2-LABEL: test_sqrt_f64:
+; SSE2: ## %bb.0:
+; SSE2-NEXT: sqrtsd %xmm0, %xmm0
+; SSE2-NEXT: retq
+;
+; AVX-LABEL: test_sqrt_f64:
+; AVX: ## %bb.0:
+; AVX-NEXT: vsqrtsd %xmm0, %xmm0, %xmm0
+; AVX-NEXT: retq
+;
+; X86-LABEL: test_sqrt_f64:
+; X86: # %bb.0:
+; X86-NEXT: fldl {{[0-9]+}}(%esp)
+; X86-NEXT: fsqrt
+; X86-NEXT: retl
+ %res = call double @llvm.sqrt.f64(double %a)
+ ret double %res
+}
+declare double @llvm.sqrt.f64(double) nounwind readnone
+
+define x86_fp80 @test_sqrt_f80(x86_fp80 %a) {
+; X64-LABEL: test_sqrt_f80:
+; X64: ## %bb.0:
+; X64-NEXT: fldt {{[0-9]+}}(%rsp)
+; X64-NEXT: fsqrt
+; X64-NEXT: retq
+;
+; X86-LABEL: test_sqrt_f80:
+; X86: # %bb.0:
+; X86-NEXT: fldt {{[0-9]+}}(%esp)
+; X86-NEXT: fsqrt
+; X86-NEXT: retl
+ %res = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %a)
+ ret x86_fp80 %res
+}
+declare x86_fp80 @llvm.sqrt.f80(x86_fp80) nounwind readnone
+
+;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
+; FASTISEL-X86: {{.*}}
+; GISEL-X86: {{.*}}
+; SDAG-X86: {{.*}}
diff --git a/llvm/test/CodeGen/X86/sqrt.ll b/llvm/test/CodeGen/X86/sqrt.ll
deleted file mode 100644
index becdbb18f42b0..0000000000000
--- a/llvm/test/CodeGen/X86/sqrt.ll
+++ /dev/null
@@ -1,37 +0,0 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx,+sse2 | FileCheck %s --check-prefix=SSE2
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx,+sse2 -fast-isel -fast-isel-abort=1 | FileCheck %s --check-prefix=SSE2
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx2,+avx | FileCheck %s --check-prefix=AVX
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=-avx2,+avx -fast-isel -fast-isel-abort=1 | FileCheck %s --check-prefix=AVX
-
-define float @test_sqrt_f32(float %a) {
-; SSE2-LABEL: test_sqrt_f32:
-; SSE2: ## %bb.0:
-; SSE2-NEXT: sqrtss %xmm0, %xmm0
-; SSE2-NEXT: retq
-;
-; AVX-LABEL: test_sqrt_f32:
-; AVX: ## %bb.0:
-; AVX-NEXT: vsqrtss %xmm0, %xmm0, %xmm0
-; AVX-NEXT: retq
- %res = call float @llvm.sqrt.f32(float %a)
- ret float %res
-}
-declare float @llvm.sqrt.f32(float) nounwind readnone
-
-define double @test_sqrt_f64(double %a) {
-; SSE2-LABEL: test_sqrt_f64:
-; SSE2: ## %bb.0:
-; SSE2-NEXT: sqrtsd %xmm0, %xmm0
-; SSE2-NEXT: retq
-;
-; AVX-LABEL: test_sqrt_f64:
-; AVX: ## %bb.0:
-; AVX-NEXT: vsqrtsd %xmm0, %xmm0, %xmm0
-; AVX-NEXT: retq
- %res = call double @llvm.sqrt.f64(double %a)
- ret double %res
-}
-declare double @llvm.sqrt.f64(double) nounwind readnone
-
-
More information about the llvm-commits
mailing list