[LLVMdev] Help!!!!Help!!!! " LLVM ERROR: Cannot select: 0x9fc9680: i32 = fp32_to_fp16 0x9fc0750 [ID=16] " problem!!!!!!!!!!!!!!!!!!

Matt Arsenault Matthew.Arsenault at amd.com
Wed Jul 9 12:51:18 PDT 2014


On 07/09/2014 12:41 PM, Matt Arsenault wrote:
> On 07/09/2014 03:30 PM, yalong at multicorewareinc.com wrote:
>>     Thank you Kevin!!!
>>     If I use fptrunc and bitcast realise NEON vcvtt ( I can sure, 
>> "fptrunc  double %tmp to float" is right, but "fptrunc float %tmp to 
>> half" is wrong). My target platform is MIPS.  The command as following:
>>
>> NEON:
>> vcvtt.f16.f32 s2, s0
>>
>> llvm Code:
>>
>> %Vt_2 = load float* %VFP_s0, align 4
>> %Vt3_1 = fptrunc float %Vt_2 to half
>> %Vt4_1 = bitcast half %Vt3_1 to i16
>> %Vt2_2 = bitcast float* %VFP_s2 to <2 x i16>*
>> %Vrti_1 = load <2 x i16>* %Vt2_2, align 4
>> %Vrti_2 = insertelement <2 x i16> %Vrti_1, i16 %Vt4_1, i32 1
>> %Vt2_3 = bitcast float* %VFP_s2 to <2 x i16>*
>> store <2 x i16> %Vrti_2, <2 x i16>* %Vt2_3, align 4
>>
>> Error Log:
>> LLVM ERROR: Cannot select: 0x9f554b0: ch = store 0x9d0f28c, 
>> 0x9f5d900, 0x9f54ba8, 0x9f54b20<ST2[FixedStack0](align=4), trunc to 
>> f16> [ID=52]
>> 0x9f5d900: f32,ch = load 0x9f5e290, 0x9f5dd40, 
>> 0x9f54b20<LD4[%sunkaddr69]> [ORD=1810] [ID=51]
>> 0x9f5dd40: i32 = add 0x9f55318, 0x9f5e0f8 [ORD=1808] [ID=31]
>> 0x9f55318: i32,ch = CopyFromReg 0x9d0f28c, 0x9f6a3a0 [ORD=1796] [ID=26]
>> 0x9f6a3a0: i32 = Register %vreg32 [ORD=1796] [ID=1]
>> 0x9f5e0f8: i32 = Constant<64> [ORD=1808] [ID=17]
>> 0x9f54b20: i32 = undef [ORD=1797] [ID=6]
>> 0x9f54ba8: i32 = FrameIndex<0> [ID=24]
>> 0x9f54b20: i32 = undef [ORD=1797] [ID=6]
>> In function: testVCVTT32TO16Function
>>
>>
>
> I think that support for the half type is only implemented for ARM. 
> Last I tried to use it, I found that none of it works even on x86, and 
> the current handling of the half conversion SDNodes seem to rely on 
> ARM specific assumptions

Have you tried using the @llvm.convert.to/from.fp16 intrinsics instead?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140709/c963d972/attachment.html>


More information about the llvm-dev mailing list