| Issue |
83362
|
| Summary |
PowerPC: Rust test fails when optimized for power9
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
cuviper
|
Here is my test case extracted from a Rust LTO build: [reduced.bc.gz](https://github.com/llvm/llvm-project/files/14441197/reduced.bc.gz)
(originally from the rust `image` crate at version 0.23.14)
We ran into a test failure in an EPEL build for CentOS Stream 9 ppc64le, which has LLVM 17.0.6. For the purpose of this report, I am using LLVM main as of commit d1f04443b14f3cfc565656fb14d283f729d95344.
The test works fine (prints "ok") with the default CPU:
```
$ clang -lm reduced.bc -o test && ./test
ok
$ clang -lm reduced.bc -o test -O1 && ./test
ok
```
However, with `-mcpu=power9`, it fails at `-O1`:
```
$ clang -lm reduced.bc -o test -mcpu=power9 && ./test
ok
$ clang -lm reduced.bc -o test -mcpu=power9 -O1 && ./test
thread 'main' panicked at examples/test_bgra16.rs:16:5:
bad red channel in [0, 255, 0]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```
At @nikic's suggestion, I tried the optimized build with `-debug-counter=dagcombine-count=0`, and that ran fine. Then I used `bisect-skip-count` to narrow the failure to `-debug-counter=dagcombine-skip=1463229,dagcombine-count=201`. I hope that's a small enough range that someone who knows dagcombine and/or powerpc better can inspect the problem!
I was also trying to reduce the testcase further with llvm-reduce, but I think it quickly got into UB, because even when I verified with an `-O0` build, that got into the weeds where the same build would sometimes print "ok" and sometimes crash.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs