[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