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

    <tr>
        <th>Summary</th>
        <td>
            MicroBenchmarks/LCALS/SubsetCRawLoops/lcalsCRaw.test
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            test-suite
      </td>
    </tr>

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

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

<pre>
    When running the LLVM 20.1.0 rc[12] reltest on Solaris/sparcv9 and Linux/sparc64, a new failure occured:
```
+  test-suite :: MicroBenchmarks/LCALS/SubsetCRawLoops/lcalsCRaw.test
```
Running the test under `gdb` shows
```
Thread 2 received signal SIGBUS, Bus error.
[Switching to Thread 1 (LWP 1)]
0x0000000100043e00 in benchmark::State::FinishKeepRunning() ()
(gdb) bt
#0  0x0000000100043e00 in benchmark::State::FinishKeepRunning() ()
#1  0x000000010007db54 in benchmark::internal::BenchmarkInstance::Run(unsigned long, int, benchmark::internal::ThreadTimer*, benchmark::internal::ThreadManager*, benchmark::internal::PerfCountersMeasurement*) const ()
#2 0x00000001000688e0 in benchmark::internal::(anonymous namespace)::RunInThread(benchmark::internal::BenchmarkInstance const*, unsigned long, int, benchmark::internal::ThreadManager*, benchmark::internal::PerfCountersMeasurement*) ()
#3  0x0000000100068338 in benchmark::internal::BenchmarkRunner::DoNIterations()
    ()
#4 0x00000001000690e0 in benchmark::internal::BenchmarkRunner::DoOneRepetition() ()
#5  0x0000000100044c0c in benchmark::RunSpecifiedBenchmarks(benchmark::BenchmarkReporter*, benchmark::BenchmarkReporter*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ()
#6  0x000000010004428c in benchmark::RunSpecifiedBenchmarks() ()
#7  0x0000000100021648 in main ()

: x/i $pc
=> 0x100043e00 <_ZN9benchmark5State17FinishKeepRunningEv+60>:  clrx  [ %i0 ]
(gdb) p/x $i0
$1 = 0x10002297c
```
The `clrx`/`stx` insn requires double-word (64-bit) alignment.  More context is like this:
```
   0x100043dec <_ZN9benchmark5State17FinishKeepRunningEv+40>:     cmp  %i1, 0
   0x100043df0 <_ZN9benchmark5State17FinishKeepRunningEv+44>:     
    bne  %icc, 0x100043e00 <_ZN9benchmark5State17FinishKeepRunningEv+60>
   0x100043df4 <_ZN9benchmark5State17FinishKeepRunningEv+48>:     nop 
   0x100043df8 <_ZN9benchmark5State17FinishKeepRunningEv+52>:     
    call  0x100042f3c <_ZN9benchmark5State11PauseTimingEv>
   0x100043dfc <_ZN9benchmark5State17FinishKeepRunningEv+56>:     mov  %i0, %o0
=> 0x100043e00 <_ZN9benchmark5State17FinishKeepRunningEv+60>:  clrx  [ %i0 ]
```
The above corresponds to `MicroBenchmarks/libs/benchmark/src/benchmark.cc`:
```
void State::FinishKeepRunning() {
  BM_CHECK(started_ && (!finished_ || error_occurred_));
  if (!error_occurred_) {
    PauseTiming();
  }
  // Total iterations has now wrapped around past 0. Fix this.
 total_iterations_ = 0;
```
Apparently, `total_iterations_` isn't aligned properly.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8V99z4jYQ_mvEy04YWf6B_cADkKPNXHK9CWlvpi-MLC9YPSG5kkzIf9-RTYBA0kl6bTOZEZZ3v2_3k7Qrc-fkWiOOSTol6fWAt742dmyN9fWgNNXT-FuNGmyrtdRr8DXC7e1vd8DoMBpSsIKk04iR9BosKo_Og9GwMIpb6Qibu4ZbsS2A6wpupW53z3NZQtgMOGh8hBWXqrUIRojWYkXiCaETktH9P50QNgUI4FeulR4hWMQTuJPCmilqUW-4_R7obmeT2wVh80VbOvSze_54a0wT3ijBlQsTw4Bzhn9_kl2XQ6srtEAyuq5KklFwtXl0Z04PtUVeAQOLAuUWKwhKcgWLm5-mvy5CetPWAVpr7DD4ptPFo_Si7pgM7P0jICy__fYVIsIKkl4TOqE72v9FlNIkRkpBaiifE-2zX3jusf85l1q6-jNis0-EsJywAvqh0y8PibACyi51FlOA_4Aljs5gR1WZJq_ASu3Raq76p8MS3mjnuRZ7wvtWE5a3utugFSgTKGcgtQ_D3yL22j7IDVrCJu80v-Oar9_n8BXtambaMOfukLvW4gZDXJOgiDDa-Re6sJeyZHmOr6n9koSwnGujnzamdaD5Bl3DBQbMZ3ludB85YfnHBO5D3Gf6Awr_a5KdihXDuVpxnL9_E4XdibafvDZfbjxa7qXR7sABAC8IkzO-gr5jdd7g-0XjPTboZaB85YSk5wcvEVS8Qnbf6kWDQq4kVqcl7nyhj2FgY6x_ay3eMnO-6g2WS7HbRVH_UHInxdJ5G055PBM1ty-Mw8TSWy69e34df3phwZUygntjj--hs3mpRnahBss_pMY54OgMkEVZ0u2dDZf6xJJ2DSR0IwmEJY3oZq5DmHR3LIgkni1__1Icokm7ehiNLmrhpy1h04yGFEP3KoSyOwCSToGwVFLoC_uxDjeEzXeBWfb9LYmAxNd7bsaKkbjoNhj6UcANE2xOMup8-A1SOw0W_2ylRQeVaUuFV4_GViHfLLkqpQ-UXMm1DkduCHBnbFcDPO48SAdKfkfwtXSXvRfgoEiF4oOKJCeKbBroxIjCRjlHXn1U6yQ5IO9PdKmxJxCiY_jBZTyLL_lofPkhPm0aOIfLPwiXsvN0BVfqgMhW8ZtLE33lrcMHuemxLlP76KKm2SGWjdn2mtMgOWGpof_PQTo7Gbw027ChrUXXGF25cMEiGb28ISpZhuFYX9jcWXE6MxQiAF8chK2RFbznPjSadgpP75aznz_NPhOWO8-tx2oJhGWEZX0dilYdQDc9mpHRrL8qLrtbsMVqGUpVaPY9nFzt3S6tDpQAJ2u9L3Z7dzK67kc2J2wOD8ZzBfLQG6HmDrR5hEfLmwYr4Na0uoKGOw90CHO56-pDuMiCD87Lo_Oyr1091alkk6bhFrVXT932yOiFZ1e_nCZs5PsChRU01jRo1dNwUI3jqogLPsBxNIqLOE3TLB3U45iuaMVGKLBIC4YrHldxnNA0xSQbsbgYyDGjLKUsYhGNCpYOMacpL6KEV_mqSEVBEoobLtVQqe1maOx6IJ1rcRyxLM_ZQPESleu-iRg7fngQFr50BnYcvK7Kdu1IQpV03h1xvPQKx__802TQWjWuvW-6Wtyt1lr6ui2HwmyCtdo-D1eNNX-g8KGLhegD2D6B7Zj9FQAA__-81i5S">