<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 08/11/2014 02:24 PM, kewuzhang
      wrote:<br>
    </div>
    <blockquote cite="mid:0775DF63-5DB5-41E8-BC90-24C2D9E59C05@amd.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      Hi Guys, 
      <div><br>
      </div>
      <div>I have a taget instruction which take a vec4 and returns a
        vec4.( say instruction  “vec4:$dst mod( vec4:$src)"  )</div>
      <div>And I want to use it to match i an  ir instruction/intrinsic
        function( say " float:$dst  llvm.irmod( vec4:$src)"   which
        takes a vec4, output a float. </div>
      <div><br>
      </div>
      <div>I think the procedure is:  when  I see the intrinsic
        llvm.irmod, I need to call  "extractlt( mod($src), 0)”, </div>
      <div><br>
      </div>
      <div>So I tried to define a pattern “ def Pat<( i32 (
        llvm.irmod vf432:$src)), (extractelt( mod v4f32:$src ), 0)>”,
         but it reports<b> ERROR”  Cannot use “extractelt” in an output
          pattern”.</b></div>
      <div><b><br>
        </b></div>
      <div>I knew I can easily do it via lowering operation
        by separating the “extractelt” node out. But can I do it via
        tablgen?</div>
    </blockquote>
    You want the machine equivalent of the extract element, which will
    probably be something like (EXTRACT_SUBREG (mod $src), sub0)<br>
  </body>
</html>