[LLVMdev] float16/half float support situation? (and a problem)
Heikki Kultala
hkultala at cs.tut.fi
Wed Apr 11 02:15:35 PDT 2012
OpenCL defines half data type, and it seems clang accepts this and
generates code for it.
The backend support for operations with fp16 seems to be missing and it
works (or should work?) by converting these to fp32 for the actual
calculations?
But I'm having problems with this.
first I just tried to use fp16 data type, without any support in
backend. This was expected to fail.
I got error:
LLVM ERROR: Cannot select: 0x2f566b0: i32 = fp32_to_fp16 0x2f66bb0 [ID=876]
So I created an instruction pattern which matches this fp32_to_fp16
def CFHrf : InstTCE<(outs R32IRegs:$op2), (ins R32FPRegs:$op1), "",
[(set R32IRegs:$op2, (fp32_to_fp16 R32FPRegs:$op1))]>;
But then I got error
/tmp/tcecc-dKBdca/GenInstrInfo.td:30:91: error: Variable not defined:
'fp32_to_fp16'
More information about the llvm-dev
mailing list