<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">