Does LLVM support 10 or 11 bit floats?
Looking at the docs: https://llvm.org/docs/BitCodeFormat.html
I see "TYPE_CODE_HALF" 16-bit but no way to specify a float width.
I notice this is possible with integers can be any bit-width but what about floats for special hardware cases?
Reason for this question is I'm interested in the feasibility of targeting GPU assembly that supports 10-bit floats: https://learn.microsoft.com/en-us/windows/desktop/direct3d10/d3d10-graphics-programming-guide-resources-float-rules
Or if this isn't possible is it possible to declare custom types or attributes where this specialization could be taken into account when making an LLVM backend?
LLVM does not support arbitrary precision floats. Though, you could emulate the behavior. There are multiple ways of doing so, e.g. via intrinsics.