<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/81742>81742</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Merge ac97562c99c3ae97f063048ccaf08ebdae60ac30 into 18.x
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          brad0
      </td>
    </tr>
</table>

<pre>
    [OpenMP][AIX]Define struct kmp_base_tas_lock with the order
 of two members swapped for big-endian (#79188)

The direct lock data structure has bit `0` (the least significant bit)
of the first 32-bit word set to `1` to indicate it is a direct lock. On
the other hand, the first word (in 32-bit mode) or first two words (in
64-bit mode) of an indirect lock are the address of the entry allocated
from the indirect lock table. The runtime checks bit `0` of the first
32-bit word to tell if this is a direct or an indirect lock. This works
fine for 32-bit and 64-bit little-endian because its memory layout of a
64-bit address is (`low word`, `high word`). However, this causes
problems for big-endian where the memory layout of a 64-bit address is
(`high word`, `low word`). If an address of the indirect lock table
entry is something like `0x110035300`, i.e., (`0x1`, `0x10035300`), it
is treated as a direct lock. This patch defines `struct
kmp_base_tas_lock` with the ordering of the two 32-bit members flipped
for big-endian PPC64 so that when checking/setting tags in member
`poll`, the second word (the low word) is used. This patch also changes
places where `poll` is not already explicitly specified for
checking/setting tags.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0Vc1u3DgTfBrOpWGBon5mdJhDEmPw5RAkh--wN4MiWyOuKVIgWxnP2y9IyT-Kdy82MGxWV1cVWzJGc3WIZ9Z8Zc3jQS40-nDug9T80Ht9Twc_Z3Q_frHmkTVfv3z_izWPjzgYhxApLIrgeZqfehnxiWR8sl49w83QCDQi-KAxMP7I-BfwA9DNw4RTjyFCvMl5Rg2DD9Cb6wM6baQDJk5MVMeuPJ2Y6Nar69__jwjaBFQEuYmWJDcKS0AYZYTeELCWc9byBJQYWJSRIE1pBqOko1T0hpw4jQiDCZGgEg8J4OaDhogE5BNYmcDIg3HaKEkIhsBEkB-5FPDTrYB5aBoxwCidZuLbB_wMzMTJuNdWk9fIRAc-bCVJoFQW17oVs633xQNIl-m8ayED5kZS64AxwjYXOgp3kNb6xFyvcEPwUz7dQ5DsLRaQVA6LIzMhqBHV817Vj4KtcB9VIw-E1oJJVSbudPLhE-3UzcR09Tlu3FKsUiI2VOk0bONbQ2TxNSY9KrnEZEZMifLhDlbe_UJZnp1ur5qYLCprufW3TJe1PBnEWj6a6_j-U1fA__wNf2NY_TMRcrON4xx8b3GKfyb3NuLmwmdC8InLluxMaN8-M9px7Ar4nk3_w95_MXCFXX03EaKfkEbjrmDNM2YXX8qS86qpsp-pmymwyF0zF_5SvrPgL7vaLpdvvpsIFDDFCuSn55B9nSWpEXTeFTHBrY91vf5paaR07fdGor1Nmt7F65vZ9sdgTdofW272Vvz69a2tIXqgUVIyxq1ZNu7KxCUiUcImeY1g3Ia4GdLy2Vu7SZBaR1Te6bfHm3fKqzmiSyIvEfVuZGmjBzVKd33LjJUK4xaR9x7ptvME0gaU-g74MlujDNk7xBmVGcy6IFeQ_xihOOhzpbuqkwc8l0d-7ER5LI-H8VziqanVUbaqrxstVK8b0UhRnU5KSGz1wZwFFzUXZV3Wddkci4G3vOzbemiapuoqwWqOkzS2sPb3VPhwPZgYFzyfymMtDlb2aGP-dgjh8Ab5kAmRPiXhnO489Ms1sppbEym-o5Ahi-cfGK4IUnXHphWq61QlsTsOvK14fVJKDvyEvZbYcqkqDsaRh_JUvByWYM8j0RxZ9YWJCxOXq6Fx6QvlJyYuqc3272EO_m9UxMQlk4tMXDL5fwIAAP__rahC5g">