<html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><style>body { line-height: 1.5; }blockquote { margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em; }div.foxdiv20140710093846521497 { }body { font-size: 10.5pt; font-family: 'Segoe UI'; color: rgb(0, 0, 0); line-height: 1.5; }</style></head><body>
    
  
<div><span></span>Hi Matt,</div><div><span style="font-family: "" segoe="" ui'";="" font-size:="" 14px;="" color:="" rgb(0,="" 0,="" 0);="" background-color:="" rgba(0,="" font-weight:="" normal;="" font-style:="" normal;text-decoration:="" none;'="">    Thank you your replying. I try to use </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;"> </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">@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:</span></div><div><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;"><br></span></div><div><span style="font-family: 'Segoe UI', Tahoma; line-height: normal;">LLVM ERROR: Cannot select: 0x9fc9680: i32 = fp32_to_fp16 0x9fc0750 [ID=16] </span><br style="font-family: 'Segoe UI', Tahoma; line-height: normal;"><span style="font-family: 'Segoe UI', Tahoma; line-height: normal;">0x9fc0750: f32,ch = load 0x3aafd68, 0x9fc2a20, 0x9feaab0<LD4[%sunkaddr85033]> [ORD=125117] [ID=15] </span><br style="font-family: 'Segoe UI', Tahoma; line-height: normal;"><span style="font-family: 'Segoe UI', Tahoma; line-height: normal;">0x9fc2a20: i32 = add 0x9fed880, 0x9fd9ea0 [ORD=125115] [ID=13] </span><br style="font-family: 'Segoe UI', Tahoma; line-height: normal;"><span style="font-family: 'Segoe UI', Tahoma; line-height: normal;">0x9fed880: i32,ch = CopyFromReg 0x3aafd68, 0x9fbea90 [ORD=125114] [ID=9] </span><br style="font-family: 'Segoe UI', Tahoma; line-height: normal;"><span style="font-family: 'Segoe UI', Tahoma; line-height: normal;">0x9fbea90: i32 = Register %vreg13999 [ORD=125114] [ID=1] </span><br style="font-family: 'Segoe UI', Tahoma; line-height: normal;"><span style="font-family: 'Segoe UI', Tahoma; line-height: normal;">0x9fd9ea0: i32 = Constant<80> [ORD=125115] [ID=2] </span><br style="font-family: 'Segoe UI', Tahoma; line-height: normal;"><span style="font-family: 'Segoe UI', Tahoma; line-height: normal;">0x9feaab0: i32 = undef [ORD=125117] [ID=4] </span><br style="font-family: 'Segoe UI', Tahoma; line-height: normal;"><span style="font-family: 'Segoe UI', Tahoma; line-height: normal;">In function: internal_function_69 </span><br style="font-family: 'Segoe UI', Tahoma; line-height: normal;"><span style="font-family: 'Segoe UI', Tahoma; line-height: normal;">Command exited with non-zero status 1</span></div><div><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;"><br></span></div>
<div><br></div><hr style="width: 210px; height: 1px;" color="#b5c4df" size="1" align="left">
<div><span><div style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt"><div>yalong@multicorewareinc.com</div></div></span></div>
<blockquote style="margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em;"><div> </div><div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm"><div style="PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px;FONT-FAMILY:tahoma;COLOR:#000000; BACKGROUND: #efefef; PADDING-BOTTOM: 8px; PADDING-TOP: 8px"><div><b>From:</b> <a href="mailto:Matthew.Arsenault@amd.com">Matt Arsenault</a></div><div><b>Date:</b> 2014-07-09 12:51</div><div><b>To:</b> <a href="mailto:yalong@multicorewareinc.com">yalong@multicorewareinc.com</a>; <a href="mailto:kevinqindev@gmail.com">Kevin Qin</a></div><div><b>CC:</b> <a href="mailto:llvmdev@cs.uiuc.edu">llvmdev</a></div><div><b>Subject:</b> Re: [LLVMdev] Help!!!!Help!!!! " LLVM ERROR: Cannot select: 0x9fc9680: i32 = fp32_to_fp16 0x9fc0750 [ID=16] " problem!!!!!!!!!!!!!!!!!!</div></div></div><div><div class="FoxDiv20140710093846521497">
  
    
  
  
    <div class="moz-cite-prefix">On 07/09/2014 12:41 PM, Matt Arsenault
      wrote:<br>
    </div>
    <blockquote cite="mid:53BD9ACE.6040104@amd.com" type="cite" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em;">
      
      <div class="moz-cite-prefix">On 07/09/2014 03:30 PM, <a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:yalong@multicorewareinc.com">yalong@multicorewareinc.com</a>
        wrote:<br>
      </div>
      <blockquote cite="mid:2014070915304158327533@multicorewareinc.com" type="cite" style="margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em;">
        
        <div><span></span>    Thank you Kevin!!!</div>
        <div>    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:</div>
        <div><br>
        </div>
        <div><span style="font-family: "" segoeui??;font-size:14px;color:rgb(0,0,0);background-color:rgba(0,font-weight:normal;font-style:normal;text-decoration:none;?="">NEON:</span><span style="font-family: ''; font-size: 10.5pt; line-height: 1.5;
            background-color: window;">    </span></div>
        <div><span style="font-family: ''; font-size: 10.5pt;
            line-height: 1.5; background-color: window;">    </span><span style="font-family: ''; font-size: 10.5pt; line-height: 1.5;
            background-color: window;">    </span><span style="background-color: window; font-family: ''; font-size:
            10.5pt; line-height: 1.5;">vcvtt.f16.f32 s2, s0</span></div>
        <div><span style="font-family: "" segoeui??;font-size:14px;color:rgb(0,0,0);background-color:rgba(0,font-weight:normal;font-style:normal;text-decoration:none;?=""><br>
          </span></div>
        <div><span style="font-family: "" segoeui??;font-size:14px;color:rgb(0,0,0);background-color:rgba(0,font-weight:normal;font-style:normal;text-decoration:none;?="">llvm
            Code:</span></div>
        <div><span style="font-family: "" segoeui??;font-size:14px;color:rgb(0,0,0);background-color:rgba(0,font-weight:normal;font-style:normal;text-decoration:none;?=""><br>
            %Vt_2 = load float* %VFP_s0, align 4 <br>
            %Vt3_1 = fptrunc float %Vt_2 to half <br>
            %Vt4_1 = bitcast half %Vt3_1 to i16 <br>
            %Vt2_2 = bitcast float* %VFP_s2 to <2 x i16>* <br>
            %Vrti_1 = load <2 x i16>* %Vt2_2, align 4 <br>
            %Vrti_2 = insertelement <2 x i16> %Vrti_1, i16 %Vt4_1,
            i32 1 <br>
            %Vt2_3 = bitcast float* %VFP_s2 to <2 x i16>* <br>
            store <2 x i16> %Vrti_2, <2 x i16>* %Vt2_3,
            align 4 <br>
          </span></div>
        <div><br>
        </div>
        <div>Error Log:</div>
        <div>
          <div>LLVM ERROR: Cannot select: 0x9f554b0: ch = store
            0x9d0f28c, 0x9f5d900, 0x9f54ba8,
            0x9f54b20<ST2[FixedStack0](align=4), trunc to f16>
            [ID=52] <br>
            0x9f5d900: f32,ch = load 0x9f5e290, 0x9f5dd40,
            0x9f54b20<LD4[%sunkaddr69]> [ORD=1810] [ID=51] <br>
            0x9f5dd40: i32 = add 0x9f55318, 0x9f5e0f8 [ORD=1808]
            [ID=31] <br>
            0x9f55318: i32,ch = CopyFromReg 0x9d0f28c, 0x9f6a3a0
            [ORD=1796] [ID=26] <br>
            0x9f6a3a0: i32 = Register %vreg32 [ORD=1796] [ID=1] <br>
            0x9f5e0f8: i32 = Constant<64> [ORD=1808] [ID=17] <br>
            0x9f54b20: i32 = undef [ORD=1797] [ID=6] <br>
            0x9f54ba8: i32 = FrameIndex<0> [ID=24] <br>
            0x9f54b20: i32 = undef [ORD=1797] [ID=6] <br>
            In function: testVCVTT32TO16Function <br>
          </div>
        </div>
        <div><br>
        </div>
        <br>
      </blockquote>
      <br>
      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<br>
    </blockquote>
    <br>
    Have you tried using the @llvm.convert.to/from.fp16 intrinsics
    instead?<br>
  
</div></div></blockquote>
</body></html>