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

yalong at multicorewareinc.com yalong at multicorewareinc.com
Thu Jul 10 15:56:42 PDT 2014











Hi Wan, Xiaofei,    Thank you your replying.
Cheers,Robin


yalong at multicorewareinc.com
 From: Wan, XiaofeiDate: 2014-07-09 18:54To: yalong at multicorewareinc.com; Matt Arsenault; Kevin QinCC: llvmdevSubject: RE: [LLVMdev] Help!!!!Help!!!! " LLVM ERROR: Cannot select: 0x9fc9680: i32 = fp32_to_fp16 0x9fc0750 [ID=16] "	problem!!!!!!!!!!!!!!!!!!







This is fixed by Andrea’s patch about one week ago
 


From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
On Behalf Of yalong at multicorewareinc.com

Sent: Friday, July 11, 2014 12:45 AM

To: Matt Arsenault; Kevin Qin

Cc: llvmdev

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


 

Hi Matt,


    Thank you your replying. I try to use  @llvm.convert.to/from.fp16 intrinsics before, I also meet "LLVM ERROR: Cannot select:
   fp32_to_fp16" problem, maybe these functions call fptrunc/fpext. Following is detail log:


 


LLVM ERROR: Cannot select: 0x9fc9680: i32 = fp32_to_fp16 0x9fc0750 [ID=16] 

0x9fc0750: f32,ch = load 0x3aafd68, 0x9fc2a20, 0x9feaab0<LD4[%sunkaddr85033]> [ORD=125117] [ID=15] 

0x9fc2a20: i32 = add 0x9fed880, 0x9fd9ea0 [ORD=125115] [ID=13] 

0x9fed880: i32,ch = CopyFromReg 0x3aafd68, 0x9fbea90 [ORD=125114] [ID=9] 

0x9fbea90: i32 = Register %vreg13999 [ORD=125114] [ID=1] 

0x9fd9ea0: i32 = Constant<80> [ORD=125115] [ID=2] 

0x9feaab0: i32 = undef [ORD=125117] [ID=4] 

In function: internal_function_69 

Command exited with non-zero status 1


 


 







yalong at multicorewareinc.com





 




From: Matt
 Arsenault


Date: 2014-07-09 12:51


To: yalong at multicorewareinc.com;
Kevin Qin


CC: llvmdev


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






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/20140710/14ded36d/attachment.html>


More information about the llvm-dev mailing list