[llvm] [RFC][SPIR-V] Add intrinsics to convert to/from ap.float (PR #164252)

Dmitry Sidorov via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 8 17:49:56 PST 2025


================
@@ -0,0 +1,187 @@
+; RUN: split-file %s %t
+; RUN: not llvm-as %t/bad-interpretation-empty.ll -o /dev/null 2>&1 | FileCheck %s --check-prefix=BAD-INTERP-EMPTY
+; RUN: not llvm-as %t/bad-interpretation-unknown.ll -o /dev/null 2>&1 | FileCheck %s --check-prefix=BAD-INTERP-UNKNOWN
+; RUN: not llvm-as %t/bad-rounding.ll -o /dev/null 2>&1 | FileCheck %s --check-prefix=BAD-ROUNDING
+; RUN: llvm-as %t/good.ll -o /dev/null
+
+;--- bad-interpretation-empty.ll
+; BAD-INTERP-EMPTY: interpretation metadata string must not be empty
+
+declare i8 @llvm.convert.to.arbitrary.fp.i8.f16(half, metadata, metadata, i1)
+
+define i8 @bad_interpretation_empty(half %v) {
+  %r = call i8 @llvm.convert.to.arbitrary.fp.i8.f16(
+      half %v, metadata !"", metadata !"round.tonearest", i1 false)
+  ret i8 %r
+}
+
+;--- bad-interpretation-unknown.ll
+; BAD-INTERP-UNKNOWN: unsupported interpretation metadata string
+
+declare i8 @llvm.convert.to.arbitrary.fp.i8.f16(half, metadata, metadata, i1)
+
+define i8 @bad_interpretation_unknown(half %v) {
+  %r = call i8 @llvm.convert.to.arbitrary.fp.i8.f16(
+      half %v, metadata !"unknown", metadata !"round.tonearest", i1 false)
+  ret i8 %r
+}
+
+;--- bad-rounding.ll
+; BAD-ROUNDING: unsupported rounding mode argument
+
+declare i8 @llvm.convert.to.arbitrary.fp.i8.f16(half, metadata, metadata, i1)
+
+define i8 @bad_rounding(half %v) {
+  %r = call i8 @llvm.convert.to.arbitrary.fp.i8.f16(
+      half %v, metadata !"Float8E4M3", metadata !"round.dynamic", i1 false)
+  ret i8 %r
+}
+
+;--- good.ll
----------------
MrSidims wrote:

Moved

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


More information about the llvm-commits mailing list