<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Dec 12, 2011, at 5:15 PM, John Criswell wrote:</div><blockquote type="cite">
  
    <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
  
  <div bgcolor="#FFFFFF" text="#000000">
    On 12/12/11 7:00 PM, Ryan Taylor wrote:
    <blockquote cite="mid:CABgVvXvkW-goJ7SvsPrJhE35mL6Krs+gEZ-d5LsW6UG3cBSFYA@mail.gmail.com" type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      So in this example:<br>
      <br>
      <pre>%idx = getelementptr { float*, i32 }* %MyStruct, i64 0, i32 1

<font><font size="4">Why is it picking i64 for the index but i32 for the offset? </font></font>
</pre>
    </blockquote>
    <br>
    I believe pointers and arrays are indexed using i64 (or some integer
    size matching the pointer size) and structure elements are indexed
    using i32.<br></div></blockquote><div><br></div>This.  Frontends generally emit non-struct indexes as appropriately-sized integers to avoid (possibly) unwanted problems with extension.  In this case, since that index is constant 0, it's unimportant, but you can imagine cases where it would.  Struct indexes, on the other hand, must be constant and non-negative, so the choice of index width doesn't matter.</div><div><br></div><div>John.</div></body></html>