<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - PowerPC64: Invalid stxv emitted - not a multiple of 16"
   href="https://bugs.llvm.org/show_bug.cgi?id=33671">33671</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>PowerPC64: Invalid stxv emitted - not a multiple of 16
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Backend: PowerPC
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>anton@samba.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>echristo@gmail.com, hfinkel@anl.gov, kbarton@linux.vnet.ibm.com, llvm-bugs@lists.llvm.org, nemanja.i.ibm@gmail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I'm seeing an invalid stxv when building the following test case:

#include <string.h>

struct {
        int a;
        int b;
} c[3];

int *d;
int e, f;

void g(void)
{
        int h = 0;

        for (; h < 3; h++) {
                memset(&c[h], 0, sizeof *c);

                for (; e;)
                        d[f] = 0;
        }
}

# clang -O2 -mcpu=power9 -S foo.c
# gcc -c foo.s

foo.s:41: Error: operand out of domain (8 is not a multiple of 16)

Note: It looks like the integrated assembler accepts the invalid input and just
truncates the offset. It would be nice to emit an error like gas does.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>