[llvm] [InstCombine] Fold `fptrunc(x) ord/uno [ C | fptrunc(y) ]` to `x ord/uno [ C | y ]` (PR #185844)

via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 13 08:26:04 PDT 2026


github-actions[bot] wrote:

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

* 172546 tests passed
* 3135 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.Transforms/InstCombine/fold-fcmp-trunc.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=instcombine -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/fold-fcmp-trunc.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/fold-fcmp-trunc.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=instcombine -S
# 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/Transforms/InstCombine/fold-fcmp-trunc.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/fold-fcmp-trunc.ll:85:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[RESULT:%.*]] = fcmp uno double [[X]], [[Y]]
# |               ^
# | <stdin>:39:55: note: scanning from here
# | define i1 @fcmp_trunc_pair_uno(double %x, double %y) {
# |                                                       ^
# | <stdin>:39:55: note: with "X" equal to "%x"
# | define i1 @fcmp_trunc_pair_uno(double %x, double %y) {
# |                                                       ^
# | <stdin>:39:55: note: with "Y" equal to "%y"
# | define i1 @fcmp_trunc_pair_uno(double %x, double %y) {
# |                                                       ^
# | <stdin>:40:2: note: possible intended match here
# |  %tx = fptrunc double %x to float
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/fold-fcmp-trunc.ll:97:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[RESULT:%.*]] = fcmp ord double [[X]], [[Y]]
# |               ^
# | <stdin>:46:55: note: scanning from here
# | define i1 @fcmp_trunc_pair_ord(double %x, double %y) {
# |                                                       ^
# | <stdin>:46:55: note: with "X" equal to "%x"
# | define i1 @fcmp_trunc_pair_ord(double %x, double %y) {
# |                                                       ^
# | <stdin>:46:55: note: with "Y" equal to "%y"
# | define i1 @fcmp_trunc_pair_ord(double %x, double %y) {
# |                                                       ^
# | <stdin>:49:6: note: possible intended match here
# |  %result = fcmp ord float %tx, %ty
# |      ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/fold-fcmp-trunc.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           34: define i1 @fcmp_trunc_ord_inf(double %0) { 
# |           35:  %result = fcmp ord double %0, 0.000000e+00 
# |           36:  ret i1 %result 
# |           37: } 
# |           38:  
# |           39: define i1 @fcmp_trunc_pair_uno(double %x, double %y) { 
# | next:85'0                                                           X error: no match found
# | next:85'1                                                             with "X" equal to "%x"
# | next:85'2                                                             with "Y" equal to "%y"
# |           40:  %tx = fptrunc double %x to float 
# | next:85'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:85'3      ?                                 possible intended match
# |           41:  %ty = fptrunc double %y to float 
# | next:85'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           42:  %result = fcmp uno float %tx, %ty 
# | next:85'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           43:  ret i1 %result 
# | next:85'0     ~~~~~~~~~~~~~~~~
# |           44: } 
# | next:85'0     ~~
# |           45:  
# | next:85'0     ~
# |           46: define i1 @fcmp_trunc_pair_ord(double %x, double %y) { 
# | next:85'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:97'0                                                           X error: no match found
# | next:97'1                                                             with "X" equal to "%x"
# | next:97'2                                                             with "Y" equal to "%y"
# |           47:  %tx = fptrunc double %x to float 
# | next:97'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           48:  %ty = fptrunc double %y to float 
# | next:97'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           49:  %result = fcmp ord float %tx, %ty 
# | next:97'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:97'3          ?                              possible intended match
# |           50:  ret i1 %result 
# | next:97'0     ~~~~~~~~~~~~~~~~
# |           51: } 
# | next:97'0     ~~
# |           52:  
# | next:97'0     ~
# |           53: define i1 @fcmp_trunc_with_nnan(double %0) { 
# | next:97'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           54:  %result = fcmp nnan oge double %0, 0x4058FFFFF0000000 
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 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/185844


More information about the llvm-commits mailing list