<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>