<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">To elaborate, it is not only cumbersome
writing these patterns for vectors of 16 characters (v16i8), it
does not work.<br>
<br>
When I compile with this pattern for an andx operation on v16i8:<br>
<br>
<i>[(set RC:$dst,</i><i><br>
</i><i> (and (i8 (vector_extract(vt VC:$src), 0 )
),
</i><i><br>
</i><i> (and (i8 (vector_extract(vt VC:$src), 1 ) ),</i><i><br>
</i><i> (and (i8 (vector_extract(vt VC:$src), 2 ) ),</i><i><br>
</i><i> </i><i>(and (i8 (vector_extract(vt VC:$src), 3
) ),</i><i><br>
</i><i> (and (i8 (vector_extract(vt VC:$src), 4 ) ),</i><i><br>
</i><i> (and (i8 (vector_extract(vt VC:$src), 5 )
),</i><i><br>
</i><i> (and (i8 (vector_extract(vt VC:$src), 6 )
),</i><i><br>
</i><i> (and (i8 (vector_extract(vt VC:$src), 7
) ),</i><i><br>
</i><i> (and (i8 (vector_extract(vt VC:$src),
8 ) ), </i><i><br>
</i><i> (and (i8 (vector_extract(vt
VC:$src), 9 ) ),</i><i><br>
</i><i> (and (i8 (vector_extract(vt
VC:$src), 10 ) ),</i><i><br>
</i><i> (and (i8 (vector_extract(vt
VC:$src), 11 ) ),</i><i><br>
</i><i> (and (i8
(vector_extract(vt VC:$src), 12 ) ),</i><i><br>
</i><i> (and (i8
(vector_extract(vt VC:$src), 13 ) ),</i><i><br>
</i><i> (and (i8
(vector_extract(vt VC:$src), 14 ) ),</i><i><br>
</i><i> (i8
(vector_extract(vt VC:$src), 15 ) )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i> )</i><i><br>
</i><i>)]</i><br>
<br>
llvm-tblgen enters an infinite loop which never stops (i left it
for ~10 mins before killing)<br>
<br>
So either there is another way to express this pattern, or this is
a problem with tablegen?<br>
<br>
Regards<br>
---<br>
Conor Mac Aoidh<br>
<br>
On 23/07/2013 12:03, Conor Mac Aoidh wrote:<br>
</div>
<blockquote cite="mid:51EE630B.1030002@gmail.com" type="cite">Hi
All,
<br>
<br>
Been having a problem constructing a suitable pattern to represent
some vector operations in the DAG. Stuff like andx/orx operations
where elements of a vector are anded/ored together.
<br>
<br>
My approach thus far has been to extract the sub elements of the
vector and and/or those elements. This is ok for 4 vectors of
i32s, but becomes cumbersome for v16i8s. Example instruction:
<br>
<br>
andx $dst $v1
<br>
<br>
Pattern:
<br>
<br>
[(set RC:$dst,
<br>
(and (i32 (vector_extract(vt VC:$src), 0 ) ),
<br>
(and (i32 (vector_extract(vt VC:$src), 1 ) ),
<br>
(and (i32 (vector_extract(vt VC:$src), 2 ) ),
<br>
(i32 (vector_extract(vt VC:$src), 3 ) )
<br>
)
<br>
)
<br>
)
<br>
)]
<br>
<br>
Is there a better way to do this?
<br>
<br>
Regards
<br>
---
<br>
Conor Mac Aoidh
<br>
</blockquote>
<br>
</body>
</html>