<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 - Clang 7.0 claiming unaligned load with POWER7 vec_xl"
   href="https://bugs.llvm.org/show_bug.cgi?id=39704">39704</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Clang 7.0 claiming unaligned load with POWER7 vec_xl
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>compiler-rt
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>7.0
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>other
          </td>
        </tr>

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

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>ubsan
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>noloader@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I don't have a reduced case for this at the moment. We are trying to track down
the cause of several failed self tests. But I hope someone can take a quick
look and tweak an attribute somewhere.

I'm working on GCC112, which is powerpc64le-unknown-linux-gnu. I built Clang
from the 7.0 release tarballs. During a run of UBsan I caught several findings
like shown below. All the findings pointed to altivec.h:16363.

/home/noloader/llvm/lib/clang/7.0.0/include/altivec.h:16363:10: runtime error:
load of misaligned address 0x3fffd3453848 for type '__vector unsigned char'
(vector of 16 'unsigned char' values), which requires 16 byte alignment
0x3fffd3453848: note: pointer points here
 00 00 00 00  a0 10 97 5f 2f e6 c9 b9  69 36 ab 5d 96 9e 6c cf  fc c7 e9 ac c0
09 cd f3  aa cf 66 7c
              ^

altivec.h:16363 is shown below. Notice the vec_xl:

 16361  static inline __ATTRS_o_ai vector unsigned char
 16362  vec_xl(signed long long __offset, unsigned char *__ptr) {
 16363    return *(vector unsigned char *)(__ptr + __offset);
 16364  }


As far as I know there is no alignment requirement for the instruction.</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>