<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    I don't think you need to change the signatures to get what you
    want.<br>
    <br>
    The current definition is:<br>
    def int_masked_store : Intrinsic<[], [llvm_anyvector_ty,
    LLVMPointerTo<0>,<br>
                                          llvm_i32_ty,<br>
                                          LLVMVectorSameWidth<0,
    llvm_i1_ty>],<br>
                                     [IntrReadWriteArgMem]>;<br>
    <br>
    If I'm remembering my Intrinsics.td syntax correctly, you can simply
    change this to:<br>
    def int_masked_store : Intrinsic<[], [llvm_anyvector_ty,
    llvm_anyptr_ty,<br>
                                          llvm_i32_ty,<br>
                                          LLVMVectorSameWidth<0,
    llvm_i1_ty>],<br>
                                     [IntrReadWriteArgMem]>;<br>
    <br>
    Philip<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 02/15/2016 11:34 AM, Artur Pilipenko
      via llvm-dev wrote:<br>
    </div>
    <blockquote
      cite="mid:2A9A5F61-1A90-4608-8FD1-82F29ED0EE5E@azulsystems.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <p style="margin: 0px 0px 12px; padding: 0px; border: 0px; widows:
        1; background-color: rgb(255, 255, 255);" class="">
        <font class="" face="Segoe UI, Segoe UI Web Regular, Segoe UI
          Symbol, Helvetica Neue, Helvetica, Arial, sans-serif" size="2"><span
            style="line-height: 18.850000381469727px;" class="">Masked
            load/store are overloaded intrinsics, the only generic type
            is the type of the value being loaded/stored. The signature
            of the intrinsic is generated based on this type. The type
            of the pointer argument is generated as a pointer to the
            return type with default addrspace. E.g.:</span></font></p>
      <p style="margin: 0px 0px 12px; padding: 0px; border: 0px; widows:
        1; background-color: rgb(255, 255, 255);" class="">
        <font class="" face="Segoe UI, Segoe UI Web Regular, Segoe UI
          Symbol, Helvetica Neue, Helvetica, Arial, sans-serif" size="2"><span
            style="line-height: 18.850000381469727px;" class="">declare
            <8 x i32> @llvm.masked.load.v8i32(<8 x i32>*,
            i32, <8 x i1>, <8 x i32>)</span></font></p>
      <p style="margin: 0px 0px 12px; padding: 0px; border: 0px; widows:
        1; background-color: rgb(255, 255, 255);" class="">
        <font class="" face="Segoe UI, Segoe UI Web Regular, Segoe UI
          Symbol, Helvetica Neue, Helvetica, Arial, sans-serif" size="2"><span
            style="line-height: 18.850000381469727px;" class="">The
            problem occurs when loop-vectorize tries to use
            @llvm.masked.load/store intrinsic for a non-default
            addrspace pointer. It fails with "Calling a function with a
            bad signature!" assertion in CallInst constructor because it
            tries to pass a non-default addrspace pointer to the pointer
            argument which has default addrspace.</span></font></p>
      <p style="margin: 0px 0px 12px; padding: 0px; border: 0px; widows:
        1; background-color: rgb(255, 255, 255);" class="">
        <font class="" face="Segoe UI, Segoe UI Web Regular, Segoe UI
          Symbol, Helvetica Neue, Helvetica, Arial, sans-serif" size="2"><span
            style="line-height: 18.850000381469727px;" class="">My
            proposal to fix the problem is to add another overloaded
            type parameter for the intrinsics - the pointer type, which
            can be any pointer with underlying type being a data type.
            In this case the signature of the intrinsic above would be:</span></font></p>
      <p style="margin: 0px 0px 12px; padding: 0px; border: 0px; widows:
        1; background-color: rgb(255, 255, 255);" class="">
        <font class="" face="Segoe UI, Segoe UI Web Regular, Segoe UI
          Symbol, Helvetica Neue, Helvetica, Arial, sans-serif" size="2"><span
            style="line-height: 18.850000381469727px;" class="">declare
            <8 x i32> @llvm.masked.load.v8i32.p1v8i32(<8 x
            i32> addrspace(1)*, i32, <8 x i1>, <8 x i32>)</span></font></p>
      <p style="margin: 0px 0px 12px; padding: 0px; border: 0px; widows:
        1; background-color: rgb(255, 255, 255);" class="">
        <font class="" face="Segoe UI, Segoe UI Web Regular, Segoe UI
          Symbol, Helvetica Neue, Helvetica, Arial, sans-serif" size="2"><span
            style="line-height: 18.850000381469727px;" class="">Corresponding
            patch is posted on phabricator:
            <a moz-do-not-send="true"
              href="http://reviews.llvm.org/D17270" class="">http://reviews.llvm.org/D17270</a></span></font></p>
      <p style="margin: 0px 0px 12px; padding: 0px; border: 0px; widows:
        1; background-color: rgb(255, 255, 255);" class="">
        <font class="" face="Segoe UI, Segoe UI Web Regular, Segoe UI
          Symbol, Helvetica Neue, Helvetica, Arial, sans-serif" size="2"><span
            style="line-height: 18.850000381469727px;" class="">Any
            comments, objections or alternatives?</span></font></p>
      <p style="margin: 0px 0px 12px; padding: 0px; border: 0px; widows:
        1; background-color: rgb(255, 255, 255);" class="">
        <font class="" face="Segoe UI, Segoe UI Web Regular, Segoe UI
          Symbol, Helvetica Neue, Helvetica, Arial, sans-serif" size="2"><span
            style="line-height: 18.850000381469727px;" class="">Artur</span></font></p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>