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