[llvm-branch-commits] [llvm] InstCombine: Improve SimplifyDemandedFPClass min/max handling (PR #175382)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Jan 12 09:46:19 PST 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 129347 tests passed
* 2860 tests skipped
* 9 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Transforms/Attributor/nofpclass-implied-by-fcmp.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes=attributor -attributor-manifest-internal < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass-implied-by-fcmp.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --allow-unused-prefixes C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass-implied-by-fcmp.ll --check-prefixes=CHECK,TUNIT
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=attributor -attributor-manifest-internal
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --allow-unused-prefixes 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass-implied-by-fcmp.ll' --check-prefixes=CHECK,TUNIT
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass-implied-by-fcmp.ll:14:16: error: CHECK-LABEL: expected string not found in input
# | ; CHECK-LABEL: define noundef nofpclass(pinf) float @clamp_is_ogt_1_to_1(
# | ^
# | <stdin>:1:1: note: scanning from here
# | ; ModuleID = '<stdin>'
# | ^
# | <stdin>:14:1: note: possible intended match here
# | define noundef float @clamp_is_ogt_1_to_1(float noundef %arg) #2 {
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass-implied-by-fcmp.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = '<stdin>'
# | label:14'0 X~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 2: source_filename = "<stdin>"
# | label:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 3:
# | label:14'0 ~
# | 4: ; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none)
# | label:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 5: declare float @llvm.fabs.f32(float) #0
# | label:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 6:
# | label:14'0 ~
# | .
# | .
# | .
# | 9:
# | label:14'0 ~
# | 10: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write)
# | label:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 11: declare void @llvm.assume(i1 noundef) #1
# | label:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 12:
# | label:14'0 ~
# | 13: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
# | label:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: define noundef float @clamp_is_ogt_1_to_1(float noundef %arg) #2 {
# | label:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | label:14'1 ? possible intended match
# | 15: %is.ogt.1 = fcmp ogt float %arg, 1.000000e+00
# | label:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 16: %select = select i1 %is.ogt.1, float 1.000000e+00, float %arg
# | label:14'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 17: ret float %select
# | label:14'0 ~~~~~~~~~~~~~~~~~~~
# | 18: }
# | label:14'0 ~~
# | 19:
# | label:14'0 ~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/Attributor/nofpclass-select.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass-select.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --allow-unused-prefixes C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass-select.ll --check-prefixes=CHECK,TUNIT
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --allow-unused-prefixes 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass-select.ll' --check-prefixes=CHECK,TUNIT
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass-select.ll:68:16: error: CHECK-LABEL: expected string not found in input
# | ; CHECK-LABEL: define noundef nofpclass(nan) float @ret_select_clamp_nan_to_zero_uno
# | ^
# | <stdin>:42:59: note: scanning from here
# | define nofpclass(nan) float @ret_select_nonan__noinf_nonan(i1 %cond, float nofpclass(nan) %arg0, float nofpclass(nan inf) %arg1) #1 {
# | ^
# | <stdin>:48:1: note: possible intended match here
# | define noundef float @ret_select_clamp_nan_to_zero_uno(float noundef %arg) #1 {
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass-select.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 37: %fence = call nofpclass(nan) float @llvm.arithmetic.fence.f32(float %select) #2
# | 38: ret float %fence
# | 39: }
# | 40:
# | 41: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
# | 42: define nofpclass(nan) float @ret_select_nonan__noinf_nonan(i1 %cond, float nofpclass(nan) %arg0, float nofpclass(nan inf) %arg1) #1 {
# | label:68'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 43: %select = select i1 %cond, float %arg0, float %arg1
# | label:68'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 44: ret float %select
# | label:68'0 ~~~~~~~~~~~~~~~~~~~
# | 45: }
# | label:68'0 ~~
# | 46:
# | label:68'0 ~
# | 47: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
# | label:68'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 48: define noundef float @ret_select_clamp_nan_to_zero_uno(float noundef %arg) #1 {
# | label:68'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | label:68'1 ? possible intended match
# | 49: %is.nan = fcmp uno float %arg, 0.000000e+00
# | label:68'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 50: %select = select i1 %is.nan, float 0.000000e+00, float %arg
# | label:68'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 51: ret float %select
# | label:68'0 ~~~~~~~~~~~~~~~~~~~
# | 52: }
# | label:68'0 ~~
# | 53:
# | label:68'0 ~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/Attributor/nofpclass.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -attributor-annotate-decl-cs -use-constant-fp-for-scalable-splat=false -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe --allow-unused-prefixes C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass.ll --check-prefixes=CHECK,CHECK-CV,TUNIT,TUNIT-CV
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -attributor-annotate-decl-cs -use-constant-fp-for-scalable-splat=false -S
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' --allow-unused-prefixes 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass.ll' --check-prefixes=CHECK,CHECK-CV,TUNIT,TUNIT-CV
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass.ll:3635:16: error: CHECK-LABEL: expected string not found in input
# | ; CHECK-LABEL: define noundef nofpclass(inf nzero sub norm) float @assume_select_condition_not_nan
# | ^
# | <stdin>:1806:66: note: scanning from here
# | define noundef float @fadd_double_no_zero__output_only_is_dynamic(float noundef nofpclass(zero) %arg) #18 {
# | ^
# | <stdin>:1835:1: note: possible intended match here
# | define noundef nofpclass(nzero) float @fadd_double_no_zero__output_only_is_ftpz(float noundef nofpclass(zero) %arg) #12 {
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\Attributor\nofpclass.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 1801: %add = fadd float %arg, %arg
# | 1802: ret float %add
# | 1803: }
# | 1804:
# | 1805: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
# | 1806: define noundef float @fadd_double_no_zero__output_only_is_dynamic(float noundef nofpclass(zero) %arg) #18 {
# | label:3635'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 1807: %add = fadd float %arg, %arg
# | label:3635'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1808: ret float %add
# | label:3635'0 ~~~~~~~~~~~~~~~~
# | 1809: }
# | label:3635'0 ~~
# | 1810:
# | label:3635'0 ~
# | 1811: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(inaccessiblemem: write)
# | label:3635'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 1830: call void @llvm.assume(i1 noundef %ord) #22
# | label:3635'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1831: ret float %arg
# | label:3635'0 ~~~~~~~~~~~~~~~~
# | 1832: }
# | label:3635'0 ~~
# | 1833:
# | label:3635'0 ~
# | 1834: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
# | label:3635'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1835: define noundef nofpclass(nzero) float @fadd_double_no_zero__output_only_is_ftpz(float noundef nofpclass(zero) %arg) #12 {
# | label:3635'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | label:3635'1 ? possible intended match
# | 1836: %add = fadd float %arg, %arg
# | label:3635'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1837: ret float %add
# | label:3635'0 ~~~~~~~~~~~~~~~~
# | 1838: }
# | label:3635'0 ~~
# | 1839:
# | label:3635'0 ~
# | 1840: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
# | label:3635'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/minmax-fp.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes=instcombine < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\minmax-fp.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\minmax-fp.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=instcombine
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\minmax-fp.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\minmax-fp.ll:125:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[MAX1]]
# | ^
# | <stdin>:60:56: note: scanning from here
# | %max1 = select i1 %cmp1, float %x, float -0.000000e+00
# | ^
# | <stdin>:60:56: note: with "MAX1" equal to "%max1"
# | %max1 = select i1 %cmp1, float %x, float -0.000000e+00
# | ^
# | <stdin>:63:2: note: possible intended match here
# | ret float %max2
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\minmax-fp.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 55: ret float %min2
# | 56: }
# | 57:
# | 58: define float @fmax_fmax_zero_mismatch(float noundef %x) {
# | 59: %cmp1 = fcmp ogt float %x, 0.000000e+00
# | 60: %max1 = select i1 %cmp1, float %x, float -0.000000e+00
# | next:125'0 X error: no match found
# | next:125'1 with "MAX1" equal to "%max1"
# | 61: %cmp2 = fcmp olt float %max1, 0.000000e+00
# | next:125'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 62: %max2 = select i1 %cmp2, float -0.000000e+00, float %max1
# | next:125'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 63: ret float %max2
# | next:125'0 ~~~~~~~~~~~~~~~~~
# | next:125'2 ? possible intended match
# | 64: }
# | next:125'0 ~~
# | 65:
# | next:125'0 ~
# | 66: define i64 @t8(float %a) {
# | next:125'0 ~~~~~~~~~~~~~~~
# | 67: %.inv = fcmp oge float %a, 5.000000e+00
# | 68: %1 = select i1 %.inv, float 5.000000e+00, float %a
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-maximum.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes=instcombine < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximum.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximum.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=instcombine
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximum.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximum.ll:1731:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[SELECT]]
# | ^
# | <stdin>:898:38: note: scanning from here
# | %nnorm = call float @returns_nnorm()
# | ^
# | <stdin>:898:38: note: with "SELECT" equal to "%select"
# | %nnorm = call float @returns_nnorm()
# | ^
# | <stdin>:900:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximum.ll:1746:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[SELECT]]
# | ^
# | <stdin>:906:69: note: scanning from here
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:906:69: note: with "SELECT" equal to "%select"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:908:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximum.ll:1793:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[SELECT]]
# | ^
# | <stdin>:930:44: note: scanning from here
# | %negative = call float @returns_negative()
# | ^
# | <stdin>:930:44: note: with "SELECT" equal to "%select"
# | %negative = call float @returns_negative()
# | ^
# | <stdin>:932:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximum.ll:1808:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[SELECT]]
# | ^
# | <stdin>:938:69: note: scanning from here
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:938:69: note: with "SELECT" equal to "%select"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:940:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximum.ll:1823:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[RESULT:%.*]] = call nnan float @llvm.maximum.f32(float [[SELECT]], float [[NEGATIVE_OR_ZERO]])
# | ^
# | <stdin>:946:60: note: scanning from here
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:946:60: note: with "SELECT" equal to "%select"
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:946:60: note: with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:947:3: note: possible intended match here
# | %result = call float @llvm.maximum.f32(float %select, float %negative.or.zero)
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximum.ll:1839:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[RESULT:%.*]] = call nnan float @llvm.maximum.f32(float [[NEGATIVE_OR_ZERO]], float [[SELECT]])
# | ^
# | <stdin>:954:69: note: scanning from here
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:954:69: note: with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:954:69: note: with "SELECT" equal to "%select"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:955:2: note: possible intended match here
# | %result = call float @llvm.maximum.f32(float %negative.or.zero, float %select)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximum.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 893: }
# | 894:
# | 895: define nofpclass(snan) float @select_is_positive_or_0__maximum__nnorm_0(float noundef %arg) {
# | 896: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 897: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 898: %nnorm = call float @returns_nnorm()
# | next:1731'0 X error: no match found
# | next:1731'1 with "SELECT" equal to "%select"
# | 899: %result = call float @llvm.maximum.f32(float %select, float %nnorm)
# | next:1731'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 900: ret float %result
# | next:1731'0 ~~~~~~~~~~~~~~~~~~~
# | next:1731'2 ? possible intended match
# | 901: }
# | next:1731'0 ~~
# | 902:
# | next:1731'0 ~
# | 903: define nofpclass(snan) float @select_is_positive_or_0__maximum__nnorm_1(float noundef %arg) {
# | next:1731'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 904: %nnorm = call float @returns_nnorm()
# | 905: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 906: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1746'0 X error: no match found
# | next:1746'1 with "SELECT" equal to "%select"
# | 907: %result = call float @llvm.maximum.f32(float %nnorm, float %select)
# | next:1746'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 908: ret float %result
# | next:1746'0 ~~~~~~~~~~~~~~~~~~~
# | next:1746'2 ? possible intended match
# | 909: }
# | next:1746'0 ~~
# | 910:
# | next:1746'0 ~
# | 911: define nofpclass(snan) float @select_is_positive_or_0__maximum__nnorm_or_nan_0(float noundef %arg) {
# | next:1746'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 912: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 913: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | .
# | .
# | .
# | 925: }
# | 926:
# | 927: define nofpclass(snan) float @select_is_positive_or_0__maximum__negative(float noundef %arg) {
# | 928: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 929: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 930: %negative = call float @returns_negative()
# | next:1793'0 X error: no match found
# | next:1793'1 with "SELECT" equal to "%select"
# | 931: %result = call float @llvm.maximum.f32(float %select, float %negative)
# | next:1793'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 932: ret float %result
# | next:1793'0 ~~~~~~~~~~~~~~~~~~~
# | next:1793'2 ? possible intended match
# | 933: }
# | next:1793'0 ~~
# | 934:
# | next:1793'0 ~
# | 935: define nofpclass(snan) float @negative__maximum__select_is_positive_or_0(float noundef %arg) {
# | next:1793'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 936: %negative = call float @returns_negative()
# | 937: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 938: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1808'0 X error: no match found
# | next:1808'1 with "SELECT" equal to "%select"
# | 939: %result = call float @llvm.maximum.f32(float %negative, float %select)
# | next:1808'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 940: ret float %result
# | next:1808'0 ~~~~~~~~~~~~~~~~~~~
# | next:1808'2 ? possible intended match
# | 941: }
# | next:1808'0 ~~
# | 942:
# | next:1808'0 ~
# | 943: define nofpclass(snan) float @select_is_positive_or_0__maximum__negative_or_zero(float noundef %arg) {
# | next:1808'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 944: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 945: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 946: %negative.or.zero = call float @returns_negative_or_zero()
# | next:1823'0 X error: no match found
# | next:1823'1 with "SELECT" equal to "%select"
# | next:1823'2 with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | 947: %result = call float @llvm.maximum.f32(float %select, float %negative.or.zero)
# | next:1823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1823'3 ? possible intended match
# | 948: ret float %result
# | next:1823'0 ~~~~~~~~~~~~~~~~~~~
# | 949: }
# | next:1823'0 ~~
# | 950:
# | next:1823'0 ~
# | 951: define nofpclass(snan) float @negative_or_zero__maximum__select_is_positive_or_0(float noundef %arg) {
# | next:1823'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 952: %negative.or.zero = call float @returns_negative_or_zero()
# | 953: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 954: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1839'0 X error: no match found
# | next:1839'1 with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | next:1839'2 with "SELECT" equal to "%select"
# | 955: %result = call float @llvm.maximum.f32(float %negative.or.zero, float %select)
# | next:1839'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1839'3 ? possible intended match
# | 956: ret float %result
# | next:1839'0 ~~~~~~~~~~~~~~~~~~~
# | 957: }
# | next:1839'0 ~~
# | 958:
# | next:1839'0 ~
# | 959: define nofpclass(snan) float @negative_or_zero__maximum__positive() {
# | next:1839'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 960: %neg.nonzero = call float @returns_negative_nonzero()
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-maximumnum.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes=instcombine < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=instcombine
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll:1738:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[SELECT]]
# | ^
# | <stdin>:907:38: note: scanning from here
# | %nnorm = call float @returns_nnorm()
# | ^
# | <stdin>:907:38: note: with "SELECT" equal to "%select"
# | %nnorm = call float @returns_nnorm()
# | ^
# | <stdin>:909:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll:1753:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[SELECT]]
# | ^
# | <stdin>:915:69: note: scanning from here
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:915:69: note: with "SELECT" equal to "%select"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:917:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll:1768:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[SELECT]]
# | ^
# | <stdin>:923:52: note: scanning from here
# | %nnorm.or.nan = call float @returns_nnorm_or_nan()
# | ^
# | <stdin>:923:52: note: with "SELECT" equal to "%select"
# | %nnorm.or.nan = call float @returns_nnorm_or_nan()
# | ^
# | <stdin>:925:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll:1783:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[SELECT]]
# | ^
# | <stdin>:931:69: note: scanning from here
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:931:69: note: with "SELECT" equal to "%select"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:933:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll:1798:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[SELECT]]
# | ^
# | <stdin>:939:44: note: scanning from here
# | %negative = call float @returns_negative()
# | ^
# | <stdin>:939:44: note: with "SELECT" equal to "%select"
# | %negative = call float @returns_negative()
# | ^
# | <stdin>:941:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll:1813:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[SELECT]]
# | ^
# | <stdin>:947:69: note: scanning from here
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:947:69: note: with "SELECT" equal to "%select"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:949:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll:1828:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[RESULT:%.*]] = call nnan float @llvm.maximumnum.f32(float [[SELECT]], float [[NEGATIVE_OR_ZERO]])
# | ^
# | <stdin>:955:60: note: scanning from here
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:955:60: note: with "SELECT" equal to "%select"
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:955:60: note: with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:956:3: note: possible intended match here
# | %result = call float @llvm.maximumnum.f32(float %select, float %negative.or.zero)
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll:1844:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[RESULT:%.*]] = call nnan float @llvm.maximumnum.f32(float [[NEGATIVE_OR_ZERO]], float [[SELECT]])
# | ^
# | <stdin>:963:69: note: scanning from here
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:963:69: note: with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:963:69: note: with "SELECT" equal to "%select"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:964:2: note: possible intended match here
# | %result = call float @llvm.maximumnum.f32(float %negative.or.zero, float %select)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-maximumnum.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 902: }
# | 903:
# | 904: define nofpclass(snan) float @select_is_positive_or_0__maximumnum__nnorm_0(float noundef %arg) {
# | 905: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 906: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 907: %nnorm = call float @returns_nnorm()
# | next:1738'0 X error: no match found
# | next:1738'1 with "SELECT" equal to "%select"
# | 908: %result = call float @llvm.maximumnum.f32(float %select, float %nnorm)
# | next:1738'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 909: ret float %result
# | next:1738'0 ~~~~~~~~~~~~~~~~~~~
# | next:1738'2 ? possible intended match
# | 910: }
# | next:1738'0 ~~
# | 911:
# | next:1738'0 ~
# | 912: define nofpclass(snan) float @select_is_positive_or_0__maximumnum__nnorm_1(float noundef %arg) {
# | next:1738'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 913: %nnorm = call float @returns_nnorm()
# | 914: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 915: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1753'0 X error: no match found
# | next:1753'1 with "SELECT" equal to "%select"
# | 916: %result = call float @llvm.maximumnum.f32(float %nnorm, float %select)
# | next:1753'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 917: ret float %result
# | next:1753'0 ~~~~~~~~~~~~~~~~~~~
# | next:1753'2 ? possible intended match
# | 918: }
# | next:1753'0 ~~
# | 919:
# | next:1753'0 ~
# | 920: define nofpclass(snan) float @select_is_positive_or_0__maximumnum__nnorm_or_nan_0(float noundef %arg) {
# | next:1753'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 921: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 922: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 923: %nnorm.or.nan = call float @returns_nnorm_or_nan()
# | next:1768'0 X error: no match found
# | next:1768'1 with "SELECT" equal to "%select"
# | 924: %result = call float @llvm.maximumnum.f32(float %select, float %nnorm.or.nan)
# | next:1768'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 925: ret float %result
# | next:1768'0 ~~~~~~~~~~~~~~~~~~~
# | next:1768'2 ? possible intended match
# | 926: }
# | next:1768'0 ~~
# | 927:
# | next:1768'0 ~
# | 928: define nofpclass(snan) float @select_is_positive_or_0__maximumnum__nnorm_or_nan_1(float noundef %arg) {
# | next:1768'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 929: %nnorm.or.nan = call float @returns_nnorm_or_nan()
# | 930: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 931: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1783'0 X error: no match found
# | next:1783'1 with "SELECT" equal to "%select"
# | 932: %result = call float @llvm.maximumnum.f32(float %nnorm.or.nan, float %select)
# | next:1783'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 933: ret float %result
# | next:1783'0 ~~~~~~~~~~~~~~~~~~~
# | next:1783'2 ? possible intended match
# | 934: }
# | next:1783'0 ~~
# | 935:
# | next:1783'0 ~
# | 936: define nofpclass(snan) float @select_is_positive_or_0__maximumnum__negative(float noundef %arg) {
# | next:1783'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 937: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 938: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 939: %negative = call float @returns_negative()
# | next:1798'0 X error: no match found
# | next:1798'1 with "SELECT" equal to "%select"
# | 940: %result = call float @llvm.maximumnum.f32(float %select, float %negative)
# | next:1798'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 941: ret float %result
# | next:1798'0 ~~~~~~~~~~~~~~~~~~~
# | next:1798'2 ? possible intended match
# | 942: }
# | next:1798'0 ~~
# | 943:
# | next:1798'0 ~
# | 944: define nofpclass(snan) float @negative__maximumnum__select_is_positive_or_0(float noundef %arg) {
# | next:1798'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 945: %negative = call float @returns_negative()
# | 946: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 947: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1813'0 X error: no match found
# | next:1813'1 with "SELECT" equal to "%select"
# | 948: %result = call float @llvm.maximumnum.f32(float %negative, float %select)
# | next:1813'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 949: ret float %result
# | next:1813'0 ~~~~~~~~~~~~~~~~~~~
# | next:1813'2 ? possible intended match
# | 950: }
# | next:1813'0 ~~
# | 951:
# | next:1813'0 ~
# | 952: define nofpclass(snan) float @select_is_positive_or_0__maximumnum__negative_or_zero(float noundef %arg) {
# | next:1813'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 953: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 954: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 955: %negative.or.zero = call float @returns_negative_or_zero()
# | next:1828'0 X error: no match found
# | next:1828'1 with "SELECT" equal to "%select"
# | next:1828'2 with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | 956: %result = call float @llvm.maximumnum.f32(float %select, float %negative.or.zero)
# | next:1828'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1828'3 ? possible intended match
# | 957: ret float %result
# | next:1828'0 ~~~~~~~~~~~~~~~~~~~
# | 958: }
# | next:1828'0 ~~
# | 959:
# | next:1828'0 ~
# | 960: define nofpclass(snan) float @negative_or_zero__maximumnum__select_is_positive_or_0(float noundef %arg) {
# | next:1828'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 961: %negative.or.zero = call float @returns_negative_or_zero()
# | 962: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 963: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1844'0 X error: no match found
# | next:1844'1 with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | next:1844'2 with "SELECT" equal to "%select"
# | 964: %result = call float @llvm.maximumnum.f32(float %negative.or.zero, float %select)
# | next:1844'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1844'3 ? possible intended match
# | 965: ret float %result
# | next:1844'0 ~~~~~~~~~~~~~~~~~~~
# | 966: }
# | next:1844'0 ~~
# | 967:
# | next:1844'0 ~
# | 968: define nofpclass(snan) float @negative_or_zero__maximumnum__positive() {
# | next:1844'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 969: %neg.nonzero = call float @returns_negative_nonzero()
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-minimum.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes=instcombine < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=instcombine
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll:1730:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[NNORM:%.*]] = call float @returns_nnorm()
# | ^
# | <stdin>:901:2: note: 'next' match was here
# | %nnorm = call float @returns_nnorm()
# | ^
# | <stdin>:898:94: note: previous match ended here
# | define nofpclass(snan) float @select_is_positive_or_0__minimum__nnorm_0(float noundef %arg) {
# | ^
# | <stdin>:899:1: note: non-matching line after previous match is here
# | %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll:1744:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[NNORM]]
# | ^
# | <stdin>:907:38: note: scanning from here
# | %nnorm = call float @returns_nnorm()
# | ^
# | <stdin>:907:38: note: with "NNORM" equal to "%nnorm"
# | %nnorm = call float @returns_nnorm()
# | ^
# | <stdin>:911:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll:1756:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[NNORM_OR_NAN:%.*]] = call float @returns_nnorm_or_nan()
# | ^
# | <stdin>:917:2: note: 'next' match was here
# | %nnorm.or.nan = call float @returns_nnorm_or_nan()
# | ^
# | <stdin>:914:101: note: previous match ended here
# | define nofpclass(snan) float @select_is_positive_or_0__minimum__nnorm_or_nan_0(float noundef %arg) {
# | ^
# | <stdin>:915:1: note: non-matching line after previous match is here
# | %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll:1770:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[NNORM_OR_NAN]]
# | ^
# | <stdin>:923:52: note: scanning from here
# | %nnorm.or.nan = call float @returns_nnorm_or_nan()
# | ^
# | <stdin>:923:52: note: with "NNORM_OR_NAN" equal to "%nnorm.or.nan"
# | %nnorm.or.nan = call float @returns_nnorm_or_nan()
# | ^
# | <stdin>:927:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll:1782:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[NEGATIVE:%.*]] = call float @returns_negative()
# | ^
# | <stdin>:933:2: note: 'next' match was here
# | %negative = call float @returns_negative()
# | ^
# | <stdin>:930:95: note: previous match ended here
# | define nofpclass(snan) float @select_is_positive_or_0__minimum__negative(float noundef %arg) {
# | ^
# | <stdin>:931:1: note: non-matching line after previous match is here
# | %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll:1796:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[NEGATIVE]]
# | ^
# | <stdin>:939:44: note: scanning from here
# | %negative = call float @returns_negative()
# | ^
# | <stdin>:939:44: note: with "NEGATIVE" equal to "%negative"
# | %negative = call float @returns_negative()
# | ^
# | <stdin>:943:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll:1811:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[RESULT:%.*]] = call nnan float @llvm.minimum.f32(float [[SELECT]], float [[NEGATIVE_OR_ZERO]])
# | ^
# | <stdin>:949:60: note: scanning from here
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:949:60: note: with "SELECT" equal to "%select"
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:949:60: note: with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:950:3: note: possible intended match here
# | %result = call float @llvm.minimum.f32(float %select, float %negative.or.zero)
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll:1827:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[RESULT:%.*]] = call nnan float @llvm.minimum.f32(float [[NEGATIVE_OR_ZERO]], float [[SELECT]])
# | ^
# | <stdin>:957:69: note: scanning from here
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:957:69: note: with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:957:69: note: with "SELECT" equal to "%select"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:958:2: note: possible intended match here
# | %result = call float @llvm.minimum.f32(float %negative.or.zero, float %select)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimum.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 896: }
# | 897:
# | 898: define nofpclass(snan) float @select_is_positive_or_0__minimum__nnorm_0(float noundef %arg) {
# | 899: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 900: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 901: %nnorm = call float @returns_nnorm()
# | next:1730 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 902: %result = call float @llvm.minimum.f32(float %select, float %nnorm)
# | 903: ret float %result
# | 904: }
# | 905:
# | 906: define nofpclass(snan) float @select_is_positive_or_0__minimum__nnorm_1(float noundef %arg) {
# | 907: %nnorm = call float @returns_nnorm()
# | next:1744'0 X error: no match found
# | next:1744'1 with "NNORM" equal to "%nnorm"
# | 908: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | next:1744'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 909: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1744'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 910: %result = call float @llvm.minimum.f32(float %nnorm, float %select)
# | next:1744'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 911: ret float %result
# | next:1744'0 ~~~~~~~~~~~~~~~~~~~
# | next:1744'2 ? possible intended match
# | 912: }
# | next:1744'0 ~~
# | 913:
# | next:1744'0 ~
# | 914: define nofpclass(snan) float @select_is_positive_or_0__minimum__nnorm_or_nan_0(float noundef %arg) {
# | next:1744'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 915: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 916: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 917: %nnorm.or.nan = call float @returns_nnorm_or_nan()
# | next:1756 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 918: %result = call float @llvm.minimum.f32(float %select, float %nnorm.or.nan)
# | 919: ret float %result
# | 920: }
# | 921:
# | 922: define nofpclass(snan) float @select_is_positive_or_0__minimum__nnorm_or_nan_1(float noundef %arg) {
# | 923: %nnorm.or.nan = call float @returns_nnorm_or_nan()
# | next:1770'0 X error: no match found
# | next:1770'1 with "NNORM_OR_NAN" equal to "%nnorm.or.nan"
# | 924: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | next:1770'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 925: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1770'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 926: %result = call float @llvm.minimum.f32(float %nnorm.or.nan, float %select)
# | next:1770'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 927: ret float %result
# | next:1770'0 ~~~~~~~~~~~~~~~~~~~
# | next:1770'2 ? possible intended match
# | 928: }
# | next:1770'0 ~~
# | 929:
# | next:1770'0 ~
# | 930: define nofpclass(snan) float @select_is_positive_or_0__minimum__negative(float noundef %arg) {
# | next:1770'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 931: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 932: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 933: %negative = call float @returns_negative()
# | next:1782 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 934: %result = call float @llvm.minimum.f32(float %select, float %negative)
# | 935: ret float %result
# | 936: }
# | 937:
# | 938: define nofpclass(snan) float @negative__minimum__select_is_positive_or_0(float noundef %arg) {
# | 939: %negative = call float @returns_negative()
# | next:1796'0 X error: no match found
# | next:1796'1 with "NEGATIVE" equal to "%negative"
# | 940: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | next:1796'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 941: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1796'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 942: %result = call float @llvm.minimum.f32(float %negative, float %select)
# | next:1796'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 943: ret float %result
# | next:1796'0 ~~~~~~~~~~~~~~~~~~~
# | next:1796'2 ? possible intended match
# | 944: }
# | next:1796'0 ~~
# | 945:
# | next:1796'0 ~
# | 946: define nofpclass(snan) float @select_is_positive_or_0__minimum__negative_or_zero(float noundef %arg) {
# | next:1796'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 947: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 948: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 949: %negative.or.zero = call float @returns_negative_or_zero()
# | next:1811'0 X error: no match found
# | next:1811'1 with "SELECT" equal to "%select"
# | next:1811'2 with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | 950: %result = call float @llvm.minimum.f32(float %select, float %negative.or.zero)
# | next:1811'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1811'3 ? possible intended match
# | 951: ret float %result
# | next:1811'0 ~~~~~~~~~~~~~~~~~~~
# | 952: }
# | next:1811'0 ~~
# | 953:
# | next:1811'0 ~
# | 954: define nofpclass(snan) float @negative_or_zero__minimum__select_is_positive_or_0(float noundef %arg) {
# | next:1811'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 955: %negative.or.zero = call float @returns_negative_or_zero()
# | 956: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 957: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1827'0 X error: no match found
# | next:1827'1 with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | next:1827'2 with "SELECT" equal to "%select"
# | 958: %result = call float @llvm.minimum.f32(float %negative.or.zero, float %select)
# | next:1827'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1827'3 ? possible intended match
# | 959: ret float %result
# | next:1827'0 ~~~~~~~~~~~~~~~~~~~
# | 960: }
# | next:1827'0 ~~
# | 961:
# | next:1827'0 ~
# | 962: define nofpclass(snan) float @negative_or_zero__minimum__positive() {
# | next:1827'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 963: %neg.nonzero = call float @returns_negative_nonzero()
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-minimumnum.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes=instcombine < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimumnum.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimumnum.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=instcombine
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimumnum.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimumnum.ll:1732:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[NNORM:%.*]] = call float @returns_nnorm()
# | ^
# | <stdin>:904:2: note: 'next' match was here
# | %nnorm = call float @returns_nnorm()
# | ^
# | <stdin>:901:97: note: previous match ended here
# | define nofpclass(snan) float @select_is_positive_or_0__minimumnum__nnorm_0(float noundef %arg) {
# | ^
# | <stdin>:902:1: note: non-matching line after previous match is here
# | %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimumnum.ll:1746:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[NNORM]]
# | ^
# | <stdin>:910:38: note: scanning from here
# | %nnorm = call float @returns_nnorm()
# | ^
# | <stdin>:910:38: note: with "NNORM" equal to "%nnorm"
# | %nnorm = call float @returns_nnorm()
# | ^
# | <stdin>:914:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimumnum.ll:1790:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: [[NEGATIVE:%.*]] = call float @returns_negative()
# | ^
# | <stdin>:936:2: note: 'next' match was here
# | %negative = call float @returns_negative()
# | ^
# | <stdin>:933:98: note: previous match ended here
# | define nofpclass(snan) float @select_is_positive_or_0__minimumnum__negative(float noundef %arg) {
# | ^
# | <stdin>:934:1: note: non-matching line after previous match is here
# | %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimumnum.ll:1804:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float [[NEGATIVE]]
# | ^
# | <stdin>:942:44: note: scanning from here
# | %negative = call float @returns_negative()
# | ^
# | <stdin>:942:44: note: with "NEGATIVE" equal to "%negative"
# | %negative = call float @returns_negative()
# | ^
# | <stdin>:946:2: note: possible intended match here
# | ret float %result
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimumnum.ll:1819:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[RESULT:%.*]] = call nnan float @llvm.minimumnum.f32(float [[SELECT]], float [[NEGATIVE_OR_ZERO]])
# | ^
# | <stdin>:952:60: note: scanning from here
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:952:60: note: with "SELECT" equal to "%select"
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:952:60: note: with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | %negative.or.zero = call float @returns_negative_or_zero()
# | ^
# | <stdin>:953:3: note: possible intended match here
# | %result = call float @llvm.minimumnum.f32(float %select, float %negative.or.zero)
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimumnum.ll:1835:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[RESULT:%.*]] = call nnan float @llvm.minimumnum.f32(float [[NEGATIVE_OR_ZERO]], float [[SELECT]])
# | ^
# | <stdin>:960:69: note: scanning from here
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:960:69: note: with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:960:69: note: with "SELECT" equal to "%select"
# | %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | ^
# | <stdin>:961:2: note: possible intended match here
# | %result = call float @llvm.minimumnum.f32(float %negative.or.zero, float %select)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass-minimumnum.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 899: }
# | 900:
# | 901: define nofpclass(snan) float @select_is_positive_or_0__minimumnum__nnorm_0(float noundef %arg) {
# | 902: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 903: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 904: %nnorm = call float @returns_nnorm()
# | next:1732 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 905: %result = call float @llvm.minimumnum.f32(float %select, float %nnorm)
# | 906: ret float %result
# | 907: }
# | 908:
# | 909: define nofpclass(snan) float @select_is_positive_or_0__minimumnum__nnorm_1(float noundef %arg) {
# | 910: %nnorm = call float @returns_nnorm()
# | next:1746'0 X error: no match found
# | next:1746'1 with "NNORM" equal to "%nnorm"
# | 911: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | next:1746'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 912: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1746'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 913: %result = call float @llvm.minimumnum.f32(float %nnorm, float %select)
# | next:1746'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 914: ret float %result
# | next:1746'0 ~~~~~~~~~~~~~~~~~~~
# | next:1746'2 ? possible intended match
# | 915: }
# | next:1746'0 ~~
# | 916:
# | next:1746'0 ~
# | 917: define nofpclass(snan) float @select_is_positive_or_0__minimumnum__nnorm_or_nan_0(float noundef %arg) {
# | next:1746'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 918: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 919: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | .
# | .
# | .
# | 931: }
# | 932:
# | 933: define nofpclass(snan) float @select_is_positive_or_0__minimumnum__negative(float noundef %arg) {
# | 934: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 935: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 936: %negative = call float @returns_negative()
# | next:1790 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 937: %result = call float @llvm.minimumnum.f32(float %select, float %negative)
# | 938: ret float %result
# | 939: }
# | 940:
# | 941: define nofpclass(snan) float @negative__minimumnum__select_is_positive_or_0(float noundef %arg) {
# | 942: %negative = call float @returns_negative()
# | next:1804'0 X error: no match found
# | next:1804'1 with "NEGATIVE" equal to "%negative"
# | 943: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | next:1804'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 944: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1804'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 945: %result = call float @llvm.minimumnum.f32(float %negative, float %select)
# | next:1804'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 946: ret float %result
# | next:1804'0 ~~~~~~~~~~~~~~~~~~~
# | next:1804'2 ? possible intended match
# | 947: }
# | next:1804'0 ~~
# | 948:
# | next:1804'0 ~
# | 949: define nofpclass(snan) float @select_is_positive_or_0__minimumnum__negative_or_zero(float noundef %arg) {
# | next:1804'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 950: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 951: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | 952: %negative.or.zero = call float @returns_negative_or_zero()
# | next:1819'0 X error: no match found
# | next:1819'1 with "SELECT" equal to "%select"
# | next:1819'2 with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | 953: %result = call float @llvm.minimumnum.f32(float %select, float %negative.or.zero)
# | next:1819'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1819'3 ? possible intended match
# | 954: ret float %result
# | next:1819'0 ~~~~~~~~~~~~~~~~~~~
# | 955: }
# | next:1819'0 ~~
# | 956:
# | next:1819'0 ~
# | 957: define nofpclass(snan) float @negative_or_zero__minimumnum__select_is_positive_or_0(float noundef %arg) {
# | next:1819'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 958: %negative.or.zero = call float @returns_negative_or_zero()
# | 959: %is.pos.or.zero = fcmp oge float %arg, 0.000000e+00
# | 960: %select = select i1 %is.pos.or.zero, float %arg, float 0.000000e+00
# | next:1835'0 X error: no match found
# | next:1835'1 with "NEGATIVE_OR_ZERO" equal to "%negative.or.zero"
# | next:1835'2 with "SELECT" equal to "%select"
# | 961: %result = call float @llvm.minimumnum.f32(float %negative.or.zero, float %select)
# | next:1835'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1835'3 ? possible intended match
# | 962: ret float %result
# | next:1835'0 ~~~~~~~~~~~~~~~~~~~
# | 963: }
# | next:1835'0 ~~
# | 964:
# | next:1835'0 ~
# | 965: define nofpclass(snan) float @negative_or_zero__minimumnum__positive() {
# | next:1835'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 966: %neg.nonzero = call float @returns_negative_nonzero()
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -passes=instcombine < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -passes=instcombine
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass.ll:1015:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float 0.000000e+00
# | ^
# | <stdin>:494:125: note: scanning from here
# | define nofpclass(nan ninf nzero nsub nnorm) float @ret_nofpclass_nan_negatives__select_clamp_pos_to_zero(float noundef %x) {
# | ^
# | <stdin>:496:31: note: possible intended match here
# | %select = select i1 %is.gt.zero, float 0.000000e+00, float %x
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass.ll:1538:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float 1.000000e+00
# | ^
# | <stdin>:738:116: note: scanning from here
# | define nofpclass(nan) float @exp_select_must_be_0(float noundef %arg, float nofpclass(inf sub norm) %zero.or.nan) {
# | ^
# | <stdin>:739:25: note: possible intended match here
# | %not.zero = fcmp one float %arg, 0.000000e+00
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass.ll:1551:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ret float 1.000000e+00
# | ^
# | <stdin>:745:124: note: scanning from here
# | define nofpclass(nan) float @exp_select_must_be_0_commute(float noundef %arg, float nofpclass(inf sub norm) %zero.or.nan) {
# | ^
# | <stdin>:746:24: note: possible intended match here
# | %is.zero = fcmp oeq float %arg, 0.000000e+00
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\InstCombine\simplify-demanded-fpclass.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 489: %is.gt.zero = fcmp ogt float %x, 0.000000e+00
# | 490: %select = select i1 %is.gt.zero, float 0.000000e+00, float %x
# | 491: ret float %select
# | 492: }
# | 493:
# | 494: define nofpclass(nan ninf nzero nsub nnorm) float @ret_nofpclass_nan_negatives__select_clamp_pos_to_zero(float noundef %x) {
# | next:1015'0 X error: no match found
# | 495: %is.gt.zero = fcmp ogt float %x, 0.000000e+00
# | next:1015'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 496: %select = select i1 %is.gt.zero, float 0.000000e+00, float %x
# | next:1015'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1015'1 ? possible intended match
# | 497: ret float %select
# | next:1015'0 ~~~~~~~~~~~~~~~~~~~
# | 498: }
# | next:1015'0 ~~
# | 499:
# | next:1015'0 ~
# | 500: define nofpclass(nan ninf nzero nsub nnorm) float @ret_nofpclass_nan_negatives__select_clamp_pos_to_zero__maybe_undef(float %x) {
# | next:1015'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 501: %is.gt.zero = fcmp ogt float %x, 0.000000e+00
# | .
# | .
# | .
# | 733:
# | 734: define nofpclass(zero) <3 x float> @partially_defined_0_splat_to_poison() {
# | 735: ret <3 x float> poison
# | 736: }
# | 737:
# | 738: define nofpclass(nan) float @exp_select_must_be_0(float noundef %arg, float nofpclass(inf sub norm) %zero.or.nan) {
# | next:1538'0 X error: no match found
# | 739: %not.zero = fcmp one float %arg, 0.000000e+00
# | next:1538'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1538'1 ? possible intended match
# | 740: %select = select i1 %not.zero, float %zero.or.nan, float %arg
# | next:1538'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 741: %exp = call float @llvm.exp.f32(float %select)
# | next:1538'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 742: ret float %exp
# | next:1538'0 ~~~~~~~~~~~~~~~~
# | 743: }
# | next:1538'0 ~~
# | 744:
# | next:1538'0 ~
# | 745: define nofpclass(nan) float @exp_select_must_be_0_commute(float noundef %arg, float nofpclass(inf sub norm) %zero.or.nan) {
# | next:1538'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1551'0 X error: no match found
# | 746: %is.zero = fcmp oeq float %arg, 0.000000e+00
# | next:1551'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1551'1 ? possible intended match
# | 747: %select = select i1 %is.zero, float %arg, float %zero.or.nan
# | next:1551'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 748: %exp = call float @llvm.exp.f32(float %select)
# | next:1551'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 749: ret float %exp
# | next:1551'0 ~~~~~~~~~~~~~~~~
# | 750: }
# | next:1551'0 ~~
# | 751:
# | next:1551'0 ~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/175382
More information about the llvm-branch-commits
mailing list