LLVM IR 10 位浮点数/浮点宽度?

LLVM IR 10-bit floats / float width?

LLVM 是否支持 10 位或 11 位浮点数? 查看文档:https://llvm.org/docs/BitCodeFormat.html
我看到 "TYPE_CODE_HALF" 16 位但无法指定浮点宽度。

我注意到这是可能的,整数可以是任何位宽,但是特殊硬件情况下的浮点数呢?

这个问题的原因是我对以支持 10 位浮点数的 GPU 组件为目标的可行性感兴趣:https://docs.microsoft.com/en-us/windows/desktop/direct3d10/d3d10-graphics-programming-guide-resources-float-rules

或者,如果这是不可能的,是否可以声明自定义类型或属性,以便在制作 LLVM 后端时考虑到这种特殊化?

LLVM 不支持任意精度浮点数。不过,您可以模仿这种行为。有多种方法可以这样做,例如通过内在函数。