<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62668>62668</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
pngquant sigbus error on ppc64le with clang-17
</td>
</tr>
<tr>
<th>Labels</th>
<td>
openmp,
backend:PowerPC,
regression
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
tstellar
</td>
</tr>
</table>
<pre>
I've run into a regression with clang-17, and I've bisected it to ffc1205bde11b15177af3a8ebf9a3b53a1ba6adc. @gchatelet
One of the test cases from the [pngquant](https://github.com/pornel/pngquant) project fails with a sigbus error when built with clang-17 on ppc64le. The sigbus is coming from this [OpenMP loop](https://github.com/kornelski/pngquant/blob/2.18.0/pngquant.c#L352)
Below is a script to build pngquant and reproduce the error. I've also attached the good and bad disassembly of the binary. Let me know what other information would help resolve this bug.
#### Stack Trace:
```
#0 0x00007ffff7b5b7fc in __kmp_init_indirect_csptr (crit=0x100455dc <gomp_critical_user_libpng[var]>, loc=0x10034cf0, gtid=<optimized out>, tag=locktag_queuing) at /root/dev/llvm-project/openmp/runtime/src/kmp_csupport.cpp:1066
#1 0x00007ffff7b5b2f4 in __kmpc_critical_with_hint (loc=0x10034cf0, global_tid=0, crit=0x100455dc <gomp_critical_user_libpng[var]>, hint=0) at /root/dev/llvm-project/openmp/runtime/src/kmp_csupport.cpp:1503
#2 0x00007ffff7b5b114 in __kmpc_critical (loc=<optimized out>, global_tid=0, crit=<optimized out>) at /root/dev/llvm-project/openmp/runtime/src/kmp_csupport.cpp:1257
#3 0x0000000010015c90 in read_image (options=0x1005de20, filename=0x7ffffffff154 "/tmp/pngquantfGwdZc/skiptest.png", using_stdin=0, input_image_p=0x7fffffffd5d0, liq_image_p=0x7fffffffd8a8, keep_input_pixels=<optimized out>, strip=<optimized out>, verbose=<optimized out>) at pngquant.c:690
#4 0x0000000010016b38 in pngquant_file_internal (filename=0x7ffffffff154 "/tmp/pngquantfGwdZc/skiptest.png", options=<optimized out>, liq=0x1005de20, outname=<optimized out>) at pngquant.c:436
#5 .omp_outlined._debug__ (options=@0x7fffffffe3e8: 0x7fffffffe0a0, .global_tid.=<optimized out>, .bound_tid.=<optimized out>, liq=<optimized out>, latest_error=<optimized out>, skipped_count=<optimized out>, error_count=<optimized out>, file_count=<optimized out>) at pngquant.c:386
#6 .omp_outlined. (.global_tid.=<optimized out>, .bound_tid.=<optimized out>, options=<optimized out>, liq=@0x7fffffffe3e0: 0x100502b0, latest_error=@0x7fffffffe108: SUCCESS, skipped_count=@0x7fffffffe110: 0, error_count=@0x7fffffffe3f0: 0, file_count=@0x7fffffffe10c: 0) at pngquant.c:352
#7 0x00007ffff7c26e64 in __kmp_invoke_microtask () at /root/dev/llvm-project/openmp/runtime/src/z_Linux_asm.S:1701
#8 0x00007ffff7b7adf8 in __kmp_invoke_task_func (gtid=0) at /root/dev/llvm-project/openmp/runtime/src/kmp_runtime.cpp:7674
#9 0x00007ffff7b706d4 in __kmp_fork_call (loc=0x10034cd8, gtid=0, call_context=<optimized out>, argc=<optimized out>, microtask=<optimized out>, invoker=0x7ffff7b7ab40 <__kmp_invoke_task_func(int)>, ap=<optimized out>) at /root/dev/llvm-project/openmp/runtime/src/kmp_runtime.cpp:2337
#10 0x00007ffff7b59268 in __kmpc_fork_call (loc=0x10034cd8, argc=6, microtask=0x10016180 <.omp_outlined.>) at /root/dev/llvm-project/openmp/runtime/src/kmp_csupport.cpp:300
#11 0x0000000010015824 in pngquant_main_internal (options=0x7fffffffe0a0, liq=0x100502b0) at pngquant.c:352
#12 main (argc=<optimized out>, argv=<optimized out>) at pngquant.c:318
[bad.s.txt](https://github.com/llvm/llvm-project/files/11456711/bad.s.txt)
```
#### Script to Reproduce:
```
libomp_installdir=/root/dev/llvm-project/install/lib/
# dnf install libpng-devel lcms2-devel
git clone https://github.com/pornel/pngquant
git checkout 2.18.0
pushd pngquant
export CFLAGS='-O2 -flto -g'
export LDFLAGS="-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -Wl,--build-id=sha1 -flto -fuse-ld=lld -Wl,-rpath=$libomp_installdir"
export CC=clang
export CXX=/root/dev/llvm-project/install/bin/clang++
./configure --with-openmp --with-libimagequant
make
./configure --with-openmp --with-libimagequant
make
make -j1 test V=1
```
[good.s.txt](https://github.com/llvm/llvm-project/files/11456712/good.s.txt)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0WF1vIynW_jXkBrkE1KcvfJE449Er9atubWZ3R3tTouBUmTGGaqCSdP_6FVX-jp2eVmctK3LgAOd5zuF8wL1XnQFYoPwB5Y93fAhr6xbBB9Cau7vGym-L_0OsfAbsBoOVCRZz7KBz4L2yBr-osMZCc9PNaInYEnMj8W5FozyIABKrgIPFbSsoI3kjgdKG5rQseZvyCpp2ztMmTzlteMGlSDDKSCfWPICGgBF5ROR--vvZALYtDmvAAXzAgnvwuHV2O46h_KE33deBm4DyR8SqdQi9R-k9YivEVp0K66FJhN0ituqtM6Djj_0KNse9s3-BCLjlSvsJG8dedc3gMThnHX5Zg8HNoHQ4h46twX0vikxDgvEfa9gvUx4Lu1Wm26upfNTzcw_m_79gbW3_Q1U3o6p-o860XTXaNoitWEKrhJxMJQKx9FOaM8Tmp-Q9gLYvUR-OvXCqH40SoUi8Xzpaz0HvrBwEjJyOsBO8tynX3mIeAhdrkKNAZ60c1zVcYqk89x62jf62N1SjDHffEow_QcBbwBtjX_DLmgdswxocVqa1bsvD6E120BKvQffYgbf6GSbCmqFLTqEglh6--ClwscF_OC4g8jcJFGT33csTjMkrIYSUbdu2ZZM3ZSuwMriuN9u-VkaFWhmpHIhQC98HhxGrhFMBpY_klRKS5bkUGKXLzm77Os4owXU9eHC1Vk1vOpQ_PHMX7Zn-Fu-CtmK_OM1ES-JYF5RE6SNKl7YPaqu-g8R2CLsVgXcofdRWbALv6q8DDMp00TN5wIitnLXR8hKeEVtp_byd7TwWsZXtwWz7KDSYoLaA2Mo7Ed0nauuHvrcuJKLvUXpPSVEcmKGXxLA2OxAjjkCjv9drZaIm1VVo2jZc1xPAceTX6ItnTTt9OP6cpAf87BI_pdfwH1HfsN1N-FflPxwSy8sDpHQHKX4oITQXcxIhOeCyVlveQUQTlbLG7w2US2Cj2q3SYPgWxomRlfiheYYRY4itwqjTPma0v7_I_0Sl_Eb1MSon0ZRRcIkHr0xX-yCV2XOiTD-ESYe6PztB5nKU0Orr9fmKV3F-AxDva9ymV6-g_W2T-OBUf3v6GVxjPbxropOomt4X82NAyfAFyUWTVpHk_Yo68lgrE8CZyX0-jtij6W5A0-rrG7vaIexO_5tws_QYJXKMk3hx7RC0MiCTWkIzdHV97kkoI0dokEKF0nt8MkL4qEpyvCzJbRBJYwcjfyA0Ib01ySNx9ZjE3nGTjep7kLWwg7l5YZdTKvyR0Gj0d2Xe8pxWR56LS54jvx9I19_0nEs7ksmO0Z0Ia8g1bs9WUDJa_umfy-VvT09XST6Xp9MJV3g-16Q9yp1TfXG82IldYTtnB7bL86pAsAKK7LQqeLYbqLdKOBu430Rb_GLo_l5_UmZ4rbnfJk8xbpeEHtSpzlNRyWVbvdEmKlK3gxFRm-6Qbn45oezGdvmkLMrsoNf8Qi9SyBOWWus2teBavy0MZHVS80w5kWtdC2sCvL5zi7jr3sm0B3vcFpm4csdIG9lsMhILkOtsIlapsQvYq3AzcXww0yxNj5mbkotqZM6K6qQa-SHXO-aKS55GKVrQaqTgPMT8TwqSlBxzJaWXBUnFsrNcueXKnOXK0-LkMnucJrcpGr1_yynDcf-47fuOxV33_BNhm1a7I_KHhsvEJ-H1x41npPQtszGWecRWlGZ5UVIa-7vDlud93GVvc6UjOrR3_9j3csfO6NoeWjV2vBI-cK2lGuP5-66wk40TKrahF8pgaVq8k8FTeT-T8Awaa7H1bPp9uqZTAQttDeCfatqPa9cgNnYIeNcPjxP94NfH7vb0OHiNroqXq0_3vz-NaMvZZ4ZnrQ4WzzrEyjO5T49HQTb7t0ZsOfuO2NKBdhbvBmbczwyABInxiUzsd_FhZDZ23LMxIPo1p3h_Zjt4mOk4rLXcS7ueh_V4avbWRoydY1mi9HF8jzgf_vPPn7Fmowxiq2kb9hC_J6wlccqaVnWDAzybxZZwNgWF_X9aNWPx_obxLd_Ax-8Vf-HZX3R6D_oXSh_pe3clf-is_dCbGuv2kz33V_VOLlI5T-f8Dha0qNIqy0hJ7tYLKuZlWs75nMicV1lKeQUkz-g8mxPZtPM7tWCEpSSnlDFW5iSRcwqp5DkrJRUFqVBGYMuVTqJiiXXdnfJ-gEXBiqK607wB7ccHPcb28Tr2DIixhosNGInS-y_2BdyX5WHm-KIXh_LHO7cYYTdD51FGtPLBH88LKmhYHB6Nzh7Iju9g5w9kd4PTi58me0QW2R7B_TcAAP__u1iDMw">