<div><div dir="auto">Change the i32 in the store pattern to v64i32.</div><br><div class="gmail_quote"><div>On Fri, Jul 7, 2017 at 8:41 PM hameeza ahmed <<a href="mailto:hahmed2305@gmail.com">hahmed2305@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Thank you. i understood how avx512 vector instructions are written in x86instravx512. i need to define my vector instructions so i wrote;<div><br></div><div><div style="font-size:12.8px"> def VMOV_256B_RM : I<0x6F, MRMSrcMem, (outs VR2048:$dst), (ins i32mem:$src),</div><div style="font-size:12.8px">                    "vmov_256B_rm\t{$src, $dst|$dst, $src}",</div><div style="font-size:12.8px">                    [(set VR2048:$dst, (v64i32 (scalar_to_vector (loadi32 addr:$src))))],</div><div style="font-size:12.8px">                    IIC_MOV_MEM>, EVEX;</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">def VMOV_256B_MR : I<0x7F, MRMDestMem, (outs), (ins i32mem:$dst, VR2048:$src),</div><div style="font-size:12.8px">                    "vmov_256B_mr\t{$src, $dst|$dst, $src}",</div><div style="font-size:12.8px">                    [(store (i32 (bitconvert VR2048:$src)), addr:$dst)], IIC_MOV_MEM>, EVEX;</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">in <a href="http://x86instrinfo.td" target="_blank">x86instrinfo.td</a>; </div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">when i build i got these instructions in X86GenInstrInfo. </div><div style="font-size:12.8px">but still my instruction is not selected when i run input file in debug mode; getting following errors;</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div><div><div><span style="font-size:12.8px">===== Instruction selection begins: BB#1 'vector.body'</span></div><div><span style="font-size:12.8px">Selecting: t9: ch = store<ST256[bitcast ([65 x i32]* @c to <64 x i32>*)](align=16)(tbaa=<0x3817578>)> t8, t7, t11, undef:i64</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">ISEL: Starting pattern match on root node: t9: ch = store<ST256[bitcast ([65 x i32]* @c to <64 x i32>*)](align=16)(tbaa=<0x3817578>)> t8, t7, t11, undef:i64</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 14, continuing at 81</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 82, continuing at 149</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 150, continuing at 217</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 218, continuing at 267</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 268, continuing at 317</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 318, continuing at 367</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 368, continuing at 394</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 395, continuing at 421</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 422, continuing at 471</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 472, continuing at 521</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 522, continuing at 571</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 572, continuing at 639</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 640, continuing at 707</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 708, continuing at 775</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 776, continuing at 804</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 805, continuing at 833</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 834, continuing at 862</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 863, continuing at 891</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 892, continuing at 920</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 921, continuing at 949</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 950, continuing at 987</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 988, continuing at 1025</span></div><div><span style="font-size:12.8px">  Match failed at index 12</span></div><div><span style="font-size:12.8px">  Continuing at 1026</span></div><div><span style="font-size:12.8px">  OpcodeSwitch from 1029 to 5725</span></div><div><span style="font-size:12.8px">  Match failed at index 5743</span></div><div><span style="font-size:12.8px">  Continuing at 5772</span></div><div><span style="font-size:12.8px">  Match failed at index 5776</span></div><div><span style="font-size:12.8px">  Continuing at 5805</span></div><div><span style="font-size:12.8px">  Match failed at index 5809</span></div><div><span style="font-size:12.8px">  Continuing at 5838</span></div><div><span style="font-size:12.8px">  Match failed at index 5842</span></div><div><span style="font-size:12.8px">  Continuing at 5911</span></div><div><span style="font-size:12.8px">  Match failed at index 5915</span></div><div><span style="font-size:12.8px">  Continuing at 5953</span></div><div><span style="font-size:12.8px">  Match failed at index 5957</span></div><div><span style="font-size:12.8px">  Continuing at 5995</span></div><div><span style="font-size:12.8px">  Match failed at index 5999</span></div><div><span style="font-size:12.8px">  Continuing at 6037</span></div><div><span style="font-size:12.8px">  Match failed at index 6041</span></div><div><span style="font-size:12.8px">  Continuing at 6084</span></div><div><span style="font-size:12.8px">  Match failed at index 6088</span></div><div><span style="font-size:12.8px">  Continuing at 6131</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 6138, continuing at 6181</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 6182, continuing at 6228</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 6235, continuing at 6384</span></div><div><span style="font-size:12.8px">  Match failed at index 6388</span></div><div><span style="font-size:12.8px">  Continuing at 6419</span></div><div><span style="font-size:12.8px">  Match failed at index 6423</span></div><div><span style="font-size:12.8px">  Continuing at 6454</span></div><div><span style="font-size:12.8px">  Match failed at index 6458</span></div><div><span style="font-size:12.8px">  Continuing at 6489</span></div><div><span style="font-size:12.8px">  Continuing at 6490</span></div><div><span style="font-size:12.8px">  Continuing at 6491</span></div><div><span style="font-size:12.8px">  Continuing at 6492</span></div><div><span style="font-size:12.8px">  Match failed at index 6514</span></div><div><span style="font-size:12.8px">  Continuing at 6545</span></div><div><span style="font-size:12.8px">  Match failed at index 6562</span></div><div><span style="font-size:12.8px">  Continuing at 6593</span></div><div><span style="font-size:12.8px">  Match failed at index 6610</span></div><div><span style="font-size:12.8px">  Continuing at 6641</span></div><div><span style="font-size:12.8px">  Continuing at 6642</span></div><div><span style="font-size:12.8px">  Match failed at index 6658</span></div><div><span style="font-size:12.8px">  Continuing at 6772</span></div><div><span style="font-size:12.8px">  Match failed at index 6788</span></div><div><span style="font-size:12.8px">  Continuing at 6902</span></div><div><span style="font-size:12.8px">  Continuing at 13636</span></div><div><span style="font-size:12.8px">  Match failed at index 13640</span></div><div><span style="font-size:12.8px">  Continuing at 14940</span></div><div><span style="font-size:12.8px">  Match failed at index 14943</span></div><div><span style="font-size:12.8px">  Continuing at 15415</span></div><div><span style="font-size:12.8px">  Match failed at index 15417</span></div><div><span style="font-size:12.8px">  Continuing at 15570</span></div><div><span style="font-size:12.8px">  Match failed at index 15571</span></div><div><span style="font-size:12.8px">  Continuing at 15598</span></div><div><span style="font-size:12.8px">  Match failed at index 15599</span></div><div><span style="font-size:12.8px">  Continuing at 15716</span></div><div><span style="font-size:12.8px">  Match failed at index 15719</span></div><div><span style="font-size:12.8px">  Continuing at 15837</span></div><div><span style="font-size:12.8px">  Match failed at index 15840</span></div><div><span style="font-size:12.8px">  Continuing at 16198</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16203, continuing at 16285</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16286, continuing at 16394</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16395, continuing at 16464</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16465, continuing at 16487</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16488, continuing at 16510</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16511, continuing at 16533</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16534, continuing at 16556</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16557, continuing at 16680</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16681, continuing at 16804</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16805, continuing at 16890</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16891, continuing at 16976</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 16978, continuing at 17169</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 17171, continuing at 17342</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 17344, continuing at 17497</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 17499, continuing at 17632</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 17634, continuing at 17801</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 17803, continuing at 17944</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 17946, continuing at 18074</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18075, continuing at 18178</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18179, continuing at 18253</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18254, continuing at 18278</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18279, continuing at 18303</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18304, continuing at 18328</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18329, continuing at 18376</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18377, continuing at 18424</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18425, continuing at 18520</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18521, continuing at 18636</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18637, continuing at 18661</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18662, continuing at 18711</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18712, continuing at 18736</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18737, continuing at 18770</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18771, continuing at 18856</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18857, continuing at 18942</span></div><div><span style="font-size:12.8px">  Skipped scope entry (due to false predicate) at index 18943, continuing at 19028</span></div><div><span style="font-size:12.8px">  Match failed at index 16201</span></div><div><span style="font-size:12.8px">  Continuing at 19029</span></div><div><span style="font-size:12.8px">LLVM ERROR: Cannot select: t9: ch = store<ST256[bitcast ([65 x i32]* @c to <64 x i32>*)](align=16)(tbaa=<0x3817578>)> t8, t7, t11, undef:i64</span></div></div></div></div><div><div><div><div><span style="font-size:12.8px">  t7: v64i32 = add t6, t4</span></div></div></div></div><div><div><div><div><span style="font-size:12.8px">    t6: v64i32,ch = load<LD256[bitcast ([65 x i32]* @c to <64 x i32>*)](align=16)(tbaa=<0x3817578>)(dereferenceable)> t0, t11, undef:i64</span></div><div><span style="font-size:12.8px">      t11: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[65 x i32]* @c> 0</span></div><div><span style="font-size:12.8px">        t10: i64 = TargetGlobalAddress<[65 x i32]* @c> 0</span></div><div><span style="font-size:12.8px">      t3: i64 = undef</span></div><div><span style="font-size:12.8px">    t4: v64i32,ch = load<LD256[bitcast ([65 x i32]* @b to <64 x i32>*)](align=16)(tbaa=<0x3817578>)(dereferenceable)> t0, t13, undef:i64</span></div><div><span style="font-size:12.8px">      t13: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[65 x i32]* @b> 0</span></div><div><span style="font-size:12.8px">        t12: i64 = TargetGlobalAddress<[65 x i32]* @b> 0</span></div><div><span style="font-size:12.8px">      t3: i64 = undef</span></div><div><span style="font-size:12.8px">  t11: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[65 x i32]* @c> 0</span></div><div><span style="font-size:12.8px">    t10: i64 = TargetGlobalAddress<[65 x i32]* @c> 0</span></div><div><span style="font-size:12.8px">  t3: i64 = undef</span></div><div><span style="font-size:12.8px">In function: foo</span></div><div style="font-size:12.8px"><br></div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">What could be the reason of this?? Please correct me.</div><div style="font-size:12.8px">I am stuck at this point....</div></div></div><div><div><div style="font-size:12.8px"><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 7, 2017 at 10:59 PM, Friedman, Eli <span><<a href="mailto:efriedma@codeaurora.org" target="_blank">efriedma@codeaurora.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF">
    <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060moz-cite-prefix">The word "fold" is used all over LLVM. 
      It generally refers to transformations which delete an
      instruction.<br>
      <br>
      If you're asking about
      <a class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060moz-txt-link-freetext" href="http://llvm.org/docs/CodeGenerator.html#instruction-folding" target="_blank">http://llvm.org/docs/CodeGenerator.html#instruction-folding</a> , it
      just means an instruction which was produced by the "instruction
      folding" transform; there isn't anything special about the
      instruction itself.<span class="m_-6875964906049251981gmail-m_5534112967121961479HOEnZb"><font color="#888888"><br>
      <br>
      -Eli</font></span><div><div class="m_-6875964906049251981gmail-m_5534112967121961479h5"><br>
      <br>
      On 7/6/2017 10:51 PM, hameeza ahmed wrote:<br>
    </div></div></div><div><div class="m_-6875964906049251981gmail-m_5534112967121961479h5">
    <blockquote type="cite">
      <div>What is meant by folded instructions in LLVM?
        <div>How they work?</div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Fri, Jul 7, 2017 at 10:19 AM,
          hameeza ahmed <span><<a href="mailto:hahmed2305@gmail.com" target="_blank">hahmed2305@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div>Thank You.
              <div>
                <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060h5">
                  <div class="gmail_extra"><br>
                    <div class="gmail_quote">On Fri, Jul 7, 2017 at
                      10:03 AM, Craig Topper <span><<a href="mailto:craig.topper@gmail.com" target="_blank">craig.topper@gmail.com</a>></span>
                      wrote:<br>
                      <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                        <div>Yes, that error is from
                          instruction selection. I think your
                          legalization changes worked fine.</div>
                        <div class="gmail_extra"><span class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585HOEnZb"><font color="#888888"><br clear="all">
                              <div>
                                <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837gmail_signature">~Craig</div>
                              </div>
                            </font></span>
                          <div>
                            <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585h5">
                              <br>
                              <div class="gmail_quote">On Thu, Jul 6,
                                2017 at 8:21 PM, hameeza ahmed via
                                llvm-dev <span><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span>
                                wrote:<br>
                                <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                                  <div>also i further run the
                                    following command;
                                    <div>llc -debug filer-knl_o3.ll<br>
                                    </div>
                                    <div><br>
                                    </div>
                                    <div>and its output is attached
                                      here. by looking at the output can
                                      we say that legalization runs fine
                                      and the error is due to
                                      instruction selection/ pattern
                                      matching which is not yet
                                      implemented?</div>
                                    <div><br>
                                    </div>
                                    <div>so do i need to worry and try
                                      to correct it at this stage or
                                      should i move forward to implement
                                      instruction selection/ pattern
                                      matching?</div>
                                    <div><br>
                                    </div>
                                    <div>Please guide me.</div>
                                    <div><br>
                                    </div>
                                    <div>Thank You</div>
                                  </div>
                                  <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837HOEnZb">
                                    <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837h5">
                                      <div class="gmail_extra"><br>
                                        <div class="gmail_quote">On Fri,
                                          Jul 7, 2017 at 8:00 AM,
                                          hameeza ahmed <span><<a href="mailto:hahmed2305@gmail.com" target="_blank">hahmed2305@gmail.com</a>></span>
                                          wrote:<br>
                                          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                                            <div>Thank You.
                                              well i have seen these
                                              links. but they dont cover
                                              the problem that i have
                                              mentioned. actually i am
                                              doing all the things step
                                              by step.
                                              <div><br>
                                              </div>
                                              <div>so i havent yet
                                                worked with instruction
                                                selection phase/ files.
                                                rather before that i am
                                                trying to do
                                                legalization by allowing
                                                vector elements>16
                                                i.e 64xi32. here i have
                                                mainly worked with 2
                                                files uptil now, i.e <a href="http://registerinfo.td" target="_blank">registerinfo.td</a>
                                                to define register class
                                                to be called in
                                                legalization. and most
                                                importantly i am dealing
                                                with file <span style="font-size:12.8px">X86ISelLowering.cpp.</span></div>
                                              <div><span style="font-size:12.8px"><br>
                                                </span></div>
                                              <div><span style="font-size:12.8px">Now
                                                  is there any relation
                                                  in this and
                                                  instruction selection.
                                                  since instruction
                                                  selection comes after
                                                  combine and legalize
                                                  so i havent yet worked
                                                  on it.</span></div>
                                              <div><span style="font-size:12.8px"><br>
                                                </span></div>
                                              <div><span style="font-size:12.8px"><br>
                                                </span></div>
                                              <div><span style="font-size:12.8px">Please
                                                  correct me, I am stuck
                                                  here.</span></div>
                                              <div><span style="font-size:12.8px"><br>
                                                </span></div>
                                              <div><span style="font-size:12.8px">Thank
                                                  You again</span></div>
                                            </div>
                                            <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014HOEnZb">
                                              <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014h5">
                                                <div class="gmail_extra"><br>
                                                  <div class="gmail_quote">On
                                                    Fri, Jul 7, 2017 at
                                                    7:11 AM, Friedman,
                                                    Eli <span><<a href="mailto:efriedma@codeaurora.org" target="_blank">efriedma@codeaurora.org</a>></span>
                                                    wrote:<br>
                                                    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                                                      <div bgcolor="#FFFFFF">
                                                        <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-cite-prefix">Have
                                                          you read <a class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-txt-link-freetext" href="http://llvm.org/docs/WritingAnLLVMBackend.html" target="_blank">http://llvm.org/docs/WritingAnLLVMBackend.html</a>
                                                          and <a class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-txt-link-freetext" href="http://llvm.org/docs/CodeGenerator.html" target="_blank">http://llvm.org/docs/CodeGenerator.html</a>
                                                          ?  <a class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-txt-link-freetext" href="http://llvm.org/docs/WritingAnLLVMBackend.html#instruction-selector" target="_blank">http://llvm.org/docs/WritingAnLLVMBackend.html#instruction-selector</a>
                                                          describes how
                                                          to define a
                                                          store
                                                          instruction.<br>
                                                          <br>
                                                          -Eli
                                                          <div>
                                                          <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809h5"><br>
                                                          <br>
                                                          On 7/6/2017
                                                          6:51 PM,
                                                          hameeza ahmed
                                                          via llvm-dev
                                                          wrote:<br>
                                                          </div>
                                                          </div>
                                                        </div>
                                                        <blockquote type="cite">
                                                          <div>
                                                          <div class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809h5">
                                                          <div dir="auto">
                                                          <div>Please
                                                          correct me i m
                                                          stuck at this
                                                          point.<br>
                                                          <div class="gmail_extra"><br>
                                                          <div class="gmail_quote">On
                                                          Jul 6, 2017
                                                          5:18 PM,
                                                          "hameeza
                                                          ahmed" <<a href="mailto:hahmed2305@gmail.com" target="_blank">hahmed2305@gmail.com</a>>
                                                          wrote:<br type="attribution">
                                                          <blockquote class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                                                          <div>Hello,
                                                          <div>i am
                                                          experimenting
                                                          with the
                                                          increase in
                                                          register/
                                                          vector width
                                                          to 64 elements
                                                          of 32 bits
                                                          instead of 16
                                                          in x86
                                                          backend. </div>
                                                          <div>for eg.</div>
                                                          <div>i have a
                                                          loop with 65
                                                          iterations;</div>
                                                          <div>if my IR
                                                          generates
                                                          v64i32 and 1
                                                          scalar, still
                                                          the backend
                                                          breaks the
                                                          v64i32 into 4
                                                          v16i32. i want
                                                          it to retain
                                                          v64i32. like
                                                          if there are
                                                          128 elements
                                                          in loop then
                                                          it should
                                                          break it into
                                                          2 v64i32
                                                          instructions.</div>
                                                          <div><br>
                                                          </div>
                                                          <div>in order
                                                          to do this i
                                                          have made
                                                          necessary
                                                          changes in
                                                          X86ISelLowering.cpp.
                                                          and rebuild
                                                          llvm. then
                                                          when i use the
command -view-dag-combine2-dags i get the required output in graph
                                                          but the
                                                          following
                                                          error on
                                                          console:</div>
                                                          <div><br>
                                                          </div>
                                                          <div>
                                                          <div>LLVM
                                                          ERROR: Cannot
                                                          select: t10:
                                                          ch =
                                                          store<ST256[bitcast
                                                          ([65 x i32]*
                                                          @a to <64 x
i32>*)](align=16)(tbaa=<0x30c5438>)> t9, t7, t12,
                                                          undef:i64</div>
                                                          <div>  t7:
                                                          v64i32 = add
                                                          t6, t4</div>
                                                          <div>    t6:
                                                          v64i32,ch =
                                                          load<LD256[bitcast
                                                          ([65 x i32]*
                                                          @c to <64 x
i32>*)](align=16)(tbaa=<0x30c5438>)(dereferenceable)>
                                                          t0, t14,
                                                          undef:i64</div>
                                                          <div>     
                                                          t14: i64 =
                                                          X86ISD::Wrapper
TargetGlobalAddress:i64<[65 x i32]* @c> 0</div>
                                                          <div>       
                                                          t13: i64 =
                                                          TargetGlobalAddress<[65
                                                          x i32]* @c>
                                                          0</div>
                                                          <div>      t3:
                                                          i64 = undef</div>
                                                          <div>    t4:
                                                          v64i32,ch =
                                                          load<LD256[bitcast
                                                          ([65 x i32]*
                                                          @b to <64 x
i32>*)](align=16)(tbaa=<0x30c5438>)(dereferenceable)>
                                                          t0, t16,
                                                          undef:i64</div>
                                                          <div>     
                                                          t16: i64 =
                                                          X86ISD::Wrapper
TargetGlobalAddress:i64<[65 x i32]* @b> 0</div>
                                                          <div>       
                                                          t15: i64 =
                                                          TargetGlobalAddress<[65
                                                          x i32]* @b>
                                                          0</div>
                                                          <div>      t3:
                                                          i64 = undef</div>
                                                          <div>  t12:
                                                          i64 =
                                                          X86ISD::Wrapper
TargetGlobalAddress:i64<[65 x i32]* @a> 0</div>
                                                          <div>    t11:
                                                          i64 =
                                                          TargetGlobalAddress<[65
                                                          x i32]* @a>
                                                          0</div>
                                                          <div>  t3: i64
                                                          = undef</div>
                                                          <div>In
                                                          function: foo</div>
                                                          </div>
                                                          <div><br>
                                                          </div>
                                                          <div>The dag
                                                          after
                                                          legalization
                                                          is also
                                                          attached here.</div>
                                                          <div><br>
                                                          </div>
                                                          <div>the
                                                          source is
                                                          vector sum of
                                                          65 elements.</div>
                                                          <div><br>
                                                          </div>
                                                          <div><br>
                                                          </div>
                                                          <div>Kindly
                                                          correct me.</div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          <br>
                                                          <fieldset class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227mimeAttachmentHeader"></fieldset>
                                                          <br>
                                                          </div>
                                                          </div>
                                                          <pre>_______________________________________________
LLVM Developers mailing list
<a class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>
<a class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><span class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809HOEnZb"><font color="#888888">
</font></span></pre>
                                                          <span class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809HOEnZb"><font color="#888888"> </font></span></blockquote>
                                                        <span class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809HOEnZb"><font color="#888888">
                                                          <p><br>
                                                          </p>
                                                          <pre class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-signature" cols="72">-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</pre>
                                                          </font></span></div>
                                                    </blockquote>
                                                  </div>
                                                  <br>
                                                </div>
                                              </div>
                                            </div>
                                          </blockquote>
                                        </div>
                                        <br>
                                      </div>
                                    </div>
                                  </div>
                                  <br>
                                  _______________________________________________<br>
                                  LLVM Developers mailing list<br>
                                  <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
                                  <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
                                  <br>
                                </blockquote>
                              </div>
                              <br>
                            </div>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                    <br>
                  </div>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <p><br>
    </p>
    <pre class="m_-6875964906049251981gmail-m_5534112967121961479m_2178888266627977060moz-signature" cols="72">-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</pre>
  </div></div></div>

</blockquote></div><br></div></div></div></blockquote></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature">~Craig</div>