[llvm] [PowerPC] Fix miscompilation when using 32-bit ucmp on 64-bit PowerPC (PR #178979)

via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 30 14:51:44 PST 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 169036 tests passed
* 3018 tests skipped
* 3 tests failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.CodeGen/PowerPC/ucmp.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=ppc64le-unknown-unknown /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/ucmp.ll -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/ucmp.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=ppc64le-unknown-unknown /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/ucmp.ll -o -
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/ucmp.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/ucmp.ll:7:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: subc 6, 4, 3
# |               ^
# | <stdin>:13:2: note: 'next' match was here
# |  subc 6, 4, 3
# |  ^
# | <stdin>:9:9: note: previous match ended here
# | # %bb.0:
# |         ^
# | <stdin>:10:1: note: non-matching line after previous match is here
# |  clrldi 3, 3, 32
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/ucmp.ll:19:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: subc 6, 4, 3
# |               ^
# | <stdin>:31:2: note: 'next' match was here
# |  subc 6, 4, 3
# |  ^
# | <stdin>:27:9: note: previous match ended here
# | # %bb.0:
# |         ^
# | <stdin>:28:1: note: non-matching line after previous match is here
# |  clrldi 3, 3, 32
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/ucmp.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |          .
# |          .
# |          .
# |          8: .Lfunc_begin0: 
# |          9: # %bb.0: 
# |         10:  clrldi 3, 3, 32 
# |         11:  clrldi 4, 4, 32 
# |         12:  sub 5, 3, 4 
# |         13:  subc 6, 4, 3 
# | next:7       !~~~~~~~~~~~  error: match on wrong line
# |         14:  subfe 3, 4, 3 
# |         15:  subfe 3, 3, 5 
# |         16:  blr 
# |         17:  .long 0 
# |         18:  .quad 0 
# |          .
# |          .
# |          .
# |         26: .Lfunc_begin1: 
# |         27: # %bb.0: 
# |         28:  clrldi 3, 3, 32 
# |         29:  clrldi 4, 4, 32 
# |         30:  sub 5, 3, 4 
# |         31:  subc 6, 4, 3 
# | next:19      !~~~~~~~~~~~  error: match on wrong line
# |         32:  subfe 3, 4, 3 
# |         33:  subfe 3, 3, 5 
# |         34:  blr 
# |         35:  .long 0 
# |         36:  .quad 0 
# |          .
# |          .
# |          .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

### lldb-api
<details>
<summary>lldb-api.lang/c/calling-conventions/TestCCallingConventions.py</summary>

```
Script:
--
/usr/bin/python3 /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/dotest.py -u CXXFLAGS -u CFLAGS --env LLVM_LIBS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --env LLVM_INCLUDE_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include --env LLVM_TOOLS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --libcxx-include-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/c++/v1 --libcxx-include-target-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/x86_64-unknown-linux-gnu/c++/v1 --libcxx-library-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib/x86_64-unknown-linux-gnu --arch x86_64 --build-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex --lldb-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-lldb/lldb-api --clang-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-clang/lldb-api --executable /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/lldb --compiler /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang --dsymutil /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/dsymutil --make /usr/bin/gmake --llvm-tools-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --lldb-obj-root /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lldb --lldb-libs-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --cmake-build-type Release /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/lang/c/calling-conventions -p TestCCallingConventions.py
--
Exit Code: 1

Command Output (stdout):
--
lldb version 23.0.0git (https://github.com/llvm/llvm-project revision 2c827bfe3fc161600dac9fea6582d65ec30d8f07)
  clang revision 2c827bfe3fc161600dac9fea6582d65ec30d8f07
  llvm revision 2c827bfe3fc161600dac9fea6582d65ec30d8f07
Skipping the following test categories: msvcstl, dsym, pdb, gmodules, debugserver, objc

--
Command Output (stderr):
--
PASS: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_fastcall (TestCCallingConventions.TestCase.test_fastcall)
PASS: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_ms_abi (TestCCallingConventions.TestCase.test_ms_abi)
PASS: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_pascal (TestCCallingConventions.TestCase.test_pascal)
PASS: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_regcall (TestCCallingConventions.TestCase.test_regcall)
PASS: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_stdcall (TestCCallingConventions.TestCase.test_stdcall)
PASS: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_sysv_abi (TestCCallingConventions.TestCase.test_sysv_abi)
FAIL: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_vectorcall (TestCCallingConventions.TestCase.test_vectorcall)
======================================================================
FAIL: test_vectorcall (TestCCallingConventions.TestCase.test_vectorcall)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py", line 75, in test_vectorcall
    self.expect_expr("func(1.0)", result_type="int", result_value="1")
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2619, in expect_expr
    value_check.check_value(self, eval_result, str(eval_result))
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 306, in check_value
    test_base.assertSuccess(val.GetError())
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2654, in assertSuccess
    self.fail(self._formatMessage(msg, "'{}' is not success".format(error)))
AssertionError: 'Expression evaluation in pure C not supported. Ran expression as 'ISO C++'.
error: Couldn't look up symbols:
  func@@8
Hint: The expression tried to call a function that is not present in the target, perhaps because it was optimized out by the compiler.
' is not success
Config=x86_64-/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang
----------------------------------------------------------------------
Ran 7 tests in 0.931s

FAILED (failures=1)

--

```
</details>
<details>
<summary>lldb-api.lang/cpp/thread_local/TestThreadLocal.py</summary>

```
Script:
--
/usr/bin/python3 /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/dotest.py -u CXXFLAGS -u CFLAGS --env LLVM_LIBS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --env LLVM_INCLUDE_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include --env LLVM_TOOLS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --libcxx-include-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/c++/v1 --libcxx-include-target-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/x86_64-unknown-linux-gnu/c++/v1 --libcxx-library-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib/x86_64-unknown-linux-gnu --arch x86_64 --build-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex --lldb-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-lldb/lldb-api --clang-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-clang/lldb-api --executable /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/lldb --compiler /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang --dsymutil /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/dsymutil --make /usr/bin/gmake --llvm-tools-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --lldb-obj-root /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lldb --lldb-libs-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --cmake-build-type Release /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/lang/cpp/thread_local -p TestThreadLocal.py
--
Exit Code: 1

Command Output (stdout):
--
lldb version 23.0.0git (https://github.com/llvm/llvm-project revision 2c827bfe3fc161600dac9fea6582d65ec30d8f07)
  clang revision 2c827bfe3fc161600dac9fea6582d65ec30d8f07
  llvm revision 2c827bfe3fc161600dac9fea6582d65ec30d8f07
Skipping the following test categories: msvcstl, dsym, pdb, gmodules, debugserver, objc

--
Command Output (stderr):
--
UNSUPPORTED: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_thread_local_dsym (TestThreadLocal.PlatformProcessCrashInfoTestCase.test_thread_local_dsym) (test case does not fall in any category of interest for this run) 
FAIL: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_thread_local_dwarf (TestThreadLocal.PlatformProcessCrashInfoTestCase.test_thread_local_dwarf)
FAIL: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_thread_local_dwo (TestThreadLocal.PlatformProcessCrashInfoTestCase.test_thread_local_dwo)
======================================================================
FAIL: test_thread_local_dwarf (TestThreadLocal.PlatformProcessCrashInfoTestCase.test_thread_local_dwarf)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 1844, in test_method
    return attrvalue(self)
           ^^^^^^^^^^^^^^^
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py", line 47, in test_thread_local
    self.expect(
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2476, in expect
    self.assertFalse(
AssertionError: True is not false : Command 'expr tl_local_int' is expected to fail!
Config=x86_64-/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang
======================================================================
FAIL: test_thread_local_dwo (TestThreadLocal.PlatformProcessCrashInfoTestCase.test_thread_local_dwo)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 1844, in test_method
    return attrvalue(self)
           ^^^^^^^^^^^^^^^
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py", line 47, in test_thread_local
    self.expect(
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2476, in expect
    self.assertFalse(
AssertionError: True is not false : Command 'expr tl_local_int' is expected to fail!
Config=x86_64-/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang
----------------------------------------------------------------------
Ran 3 tests in 0.493s

FAILED (failures=2, skipped=1)

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/178979


More information about the llvm-commits mailing list