[llvm-branch-commits] [llvm] IR: Accept x86_fp80 as a long-double-type value (PR #210818)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Jul 20 14:47:22 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-powerpc

Author: Matt Arsenault (arsenm)

<details>
<summary>Changes</summary>

Prepare to emit long-double-type for all targets.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply@<!-- -->anthropic.com>

---
Full diff: https://github.com/llvm/llvm-project/pull/210818.diff


3 Files Affected:

- (modified) llvm/docs/LangRef.md (+3) 
- (modified) llvm/lib/IR/Verifier.cpp (+3-1) 
- (modified) llvm/test/Assembler/module-flags-long-double-type.ll (+6) 


``````````diff
diff --git a/llvm/docs/LangRef.md b/llvm/docs/LangRef.md
index 19ace3ff529fd..02e61690a9518 100644
--- a/llvm/docs/LangRef.md
+++ b/llvm/docs/LangRef.md
@@ -9361,6 +9361,9 @@ type, and must be one of:
 * - `"fp128"`
   - IEEE 754 quadruple precision (128-bit).
 
+* - `"x86_fp80"`
+  - x87 80-bit extended precision.
+
 * - `"ppc_fp128"`
   - IBM `double-double` (a pair of IEEE doubles).
 
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp
index 91ddcb0723b75..1a85dceece216 100644
--- a/llvm/lib/IR/Verifier.cpp
+++ b/llvm/lib/IR/Verifier.cpp
@@ -1999,7 +1999,9 @@ Verifier::visitModuleFlag(const MDNode *Op,
     Check(Value, "long-double-type metadata requires a string argument");
     if (Value)
       Check(Value->getString() == "ppc_fp128" ||
-                Value->getString() == "fp128" || Value->getString() == "double",
+                Value->getString() == "fp128" ||
+                Value->getString() == "x86_fp80" ||
+                Value->getString() == "double",
             "invalid long-double-type metadata value", Op);
   }
 
diff --git a/llvm/test/Assembler/module-flags-long-double-type.ll b/llvm/test/Assembler/module-flags-long-double-type.ll
index 636758d810695..bf59d5bf6847e 100644
--- a/llvm/test/Assembler/module-flags-long-double-type.ll
+++ b/llvm/test/Assembler/module-flags-long-double-type.ll
@@ -1,6 +1,7 @@
 ; RUN: split-file %s %t
 ; RUN: llvm-as < %t/ppc_fp128.ll | llvm-dis | FileCheck %s --check-prefix=PPCFP128
 ; RUN: llvm-as < %t/fp128.ll | llvm-dis | FileCheck %s --check-prefix=FP128
+; RUN: llvm-as < %t/x86_fp80.ll | llvm-dis | FileCheck %s --check-prefix=X86FP80
 ; RUN: llvm-as < %t/double.ll | llvm-dis | FileCheck %s --check-prefix=DOUBLE
 
 ;--- ppc_fp128.ll
@@ -13,6 +14,11 @@
 !0 = !{i32 1, !"long-double-type", !"fp128"}
 ; FP128: !0 = !{i32 1, !"long-double-type", !"fp128"}
 
+;--- x86_fp80.ll
+!llvm.module.flags = !{!0}
+!0 = !{i32 1, !"long-double-type", !"x86_fp80"}
+; X86FP80: !0 = !{i32 1, !"long-double-type", !"x86_fp80"}
+
 ;--- double.ll
 !llvm.module.flags = !{!0}
 !0 = !{i32 1, !"long-double-type", !"double"}

``````````

</details>


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


More information about the llvm-branch-commits mailing list