[llvm-branch-commits] [llvm] InstCombine: Consider not-inf/nan context when simplifying fmul (PR #174024)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Jan 7 04:50:39 PST 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 167727 tests passed
* 2969 tests skipped
* 1 test failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.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/simplify-demanded-fpclass-fmul.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine
# 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/simplify-demanded-fpclass-fmul.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:693:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MUL:%.*]] = fmul float [[UNKNOWN]], 0.000000e+00
# | ^
# | <stdin>:327:160: note: scanning from here
# | define nofpclass(nan inf) float @ret_noinf_nonan__known_pzero_or_nan__fmul__not_inf_or_nan(float nofpclass(inf nzero sub norm) %pzero.or.nan, float %unknown) {
# | ^
# | <stdin>:327:160: note: with "UNKNOWN" equal to "%unknown"
# | define nofpclass(nan inf) float @ret_noinf_nonan__known_pzero_or_nan__fmul__not_inf_or_nan(float nofpclass(inf nzero sub norm) %pzero.or.nan, float %unknown) {
# | ^
# | <stdin>:328:22: note: possible intended match here
# | %mul = call float @llvm.copysign.f32(float 0.000000e+00, float %unknown)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:704:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MUL:%.*]] = fmul float [[UNKNOWN]], 0.000000e+00
# | ^
# | <stdin>:332:160: note: scanning from here
# | define nofpclass(nan inf) float @ret_noinf_nonan__not_inf_or_nan__fmul__known_pzero_or_nan(float nofpclass(inf nzero sub norm) %pzero.or.nan, float %unknown) {
# | ^
# | <stdin>:332:160: note: with "UNKNOWN" equal to "%unknown"
# | define nofpclass(nan inf) float @ret_noinf_nonan__not_inf_or_nan__fmul__known_pzero_or_nan(float nofpclass(inf nzero sub norm) %pzero.or.nan, float %unknown) {
# | ^
# | <stdin>:333:22: note: possible intended match here
# | %mul = call float @llvm.copysign.f32(float 0.000000e+00, float %unknown)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:953:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[UNKNOWN]], 0.000000e+00
# | ^
# | <stdin>:454:38: note: scanning from here
# | %pzero = call float @returns_pzero()
# | ^
# | <stdin>:454:38: note: with "UNKNOWN" equal to "%unknown"
# | %pzero = call float @returns_pzero()
# | ^
# | <stdin>:455:23: note: possible intended match here
# | %fmul = call float @llvm.copysign.f32(float 0.000000e+00, float %unknown)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:965:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[UNKNOWN]], 0.000000e+00
# | ^
# | <stdin>:460:38: note: scanning from here
# | %pzero = call float @returns_pzero()
# | ^
# | <stdin>:460:38: note: with "UNKNOWN" equal to "%unknown"
# | %pzero = call float @returns_pzero()
# | ^
# | <stdin>:461:23: note: possible intended match here
# | %fmul = call float @llvm.copysign.f32(float 0.000000e+00, float %unknown)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:977:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[UNKNOWN]], -0.000000e+00
# | ^
# | <stdin>:466:38: note: scanning from here
# | %nzero = call float @returns_nzero()
# | ^
# | <stdin>:466:38: note: with "UNKNOWN" equal to "%unknown"
# | %nzero = call float @returns_nzero()
# | ^
# | <stdin>:468:22: note: possible intended match here
# | %fmul = call float @llvm.copysign.f32(float 0.000000e+00, float %1)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:989:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[UNKNOWN]], -0.000000e+00
# | ^
# | <stdin>:473:38: note: scanning from here
# | %nzero = call float @returns_nzero()
# | ^
# | <stdin>:473:38: note: with "UNKNOWN" equal to "%unknown"
# | %nzero = call float @returns_nzero()
# | ^
# | <stdin>:475:22: note: possible intended match here
# | %fmul = call float @llvm.copysign.f32(float 0.000000e+00, float %1)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:1025:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MUL:%.*]] = fmul contract float [[NZERO_OR_NAN]], [[NOT_INF_OR_NAN]]
# | ^
# | <stdin>:491:167: note: scanning from here
# | define nofpclass(snan) float @known__nzero_or_nan__fmul__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan inf) %not.inf.or.nan) {
# | ^
# | <stdin>:491:167: note: with "NZERO_OR_NAN" equal to "%nzero.or.nan"
# | define nofpclass(snan) float @known__nzero_or_nan__fmul__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan inf) %not.inf.or.nan) {
# | ^
# | <stdin>:491:167: note: with "NOT_INF_OR_NAN" equal to "%not.inf.or.nan"
# | define nofpclass(snan) float @known__nzero_or_nan__fmul__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan inf) %not.inf.or.nan) {
# | ^
# | <stdin>:493:2: note: possible intended match here
# | %mul = call contract float @llvm.copysign.f32(float %nzero.or.nan, float %1)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:1036:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MUL:%.*]] = fmul contract float [[NOT_INF_OR_NAN]], [[NZERO_OR_NAN]]
# | ^
# | <stdin>:497:167: note: scanning from here
# | define nofpclass(snan) float @known__not_inf_or_nan__fmul__nzero_or_nan(float nofpclass(nan inf) %not.inf.or.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | ^
# | <stdin>:497:167: note: with "NOT_INF_OR_NAN" equal to "%not.inf.or.nan"
# | define nofpclass(snan) float @known__not_inf_or_nan__fmul__nzero_or_nan(float nofpclass(nan inf) %not.inf.or.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | ^
# | <stdin>:497:167: note: with "NZERO_OR_NAN" equal to "%nzero.or.nan"
# | define nofpclass(snan) float @known__not_inf_or_nan__fmul__nzero_or_nan(float nofpclass(nan inf) %not.inf.or.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | ^
# | <stdin>:499:2: note: possible intended match here
# | %mul = call contract float @llvm.copysign.f32(float %nzero.or.nan, float %1)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:1113:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MUL:%.*]] = fmul float [[NOT_NAN]], -0.000000e+00
# | ^
# | <stdin>:533:159: note: scanning from here
# | define nofpclass(nan) float @ret_nonan__nzero_or_nan__fmul__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan) %not.nan) {
# | ^
# | <stdin>:533:159: note: with "NOT_NAN" equal to "%not.nan"
# | define nofpclass(nan) float @ret_nonan__nzero_or_nan__fmul__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan) %not.nan) {
# | ^
# | <stdin>:535:21: note: possible intended match here
# | %mul = call float @llvm.copysign.f32(float 0.000000e+00, float %1)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:1124:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MUL:%.*]] = fmul float [[NOT_NAN]], -0.000000e+00
# | ^
# | <stdin>:539:159: note: scanning from here
# | define nofpclass(nan) float @ret_nonan__not_inf_or_nan__fmul__nzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | ^
# | <stdin>:539:159: note: with "NOT_NAN" equal to "%not.nan"
# | define nofpclass(nan) float @ret_nonan__not_inf_or_nan__fmul__nzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | ^
# | <stdin>:541:21: note: possible intended match here
# | %mul = call float @llvm.copysign.f32(float 0.000000e+00, float %1)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:1135:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MUL:%.*]] = fmul ninf float [[NZERO_OR_NAN]], [[NOT_NAN]]
# | ^
# | <stdin>:545:159: note: scanning from here
# | define nofpclass(snan) float @ret__nzero_or_nan__fmul_ninf__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan) %not.nan) {
# | ^
# | <stdin>:545:159: note: with "NZERO_OR_NAN" equal to "%nzero.or.nan"
# | define nofpclass(snan) float @ret__nzero_or_nan__fmul_ninf__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan) %not.nan) {
# | ^
# | <stdin>:545:159: note: with "NOT_NAN" equal to "%not.nan"
# | define nofpclass(snan) float @ret__nzero_or_nan__fmul_ninf__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan) %not.nan) {
# | ^
# | <stdin>:547:2: note: possible intended match here
# | %mul = call ninf float @llvm.copysign.f32(float %nzero.or.nan, float %1)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:1146:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MUL:%.*]] = fmul ninf float [[NOT_NAN]], [[NZERO_OR_NAN]]
# | ^
# | <stdin>:551:158: note: scanning from here
# | define nofpclass(snan) float @ret_not_inf_or_nan__fmul_ninf__nzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | ^
# | <stdin>:551:158: note: with "NOT_NAN" equal to "%not.nan"
# | define nofpclass(snan) float @ret_not_inf_or_nan__fmul_ninf__nzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | ^
# | <stdin>:551:158: note: with "NZERO_OR_NAN" equal to "%nzero.or.nan"
# | define nofpclass(snan) float @ret_not_inf_or_nan__fmul_ninf__nzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | ^
# | <stdin>:553:2: note: possible intended match here
# | %mul = call ninf float @llvm.copysign.f32(float %nzero.or.nan, float %1)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:1269:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MUL:%.*]] = fmul ninf float [[PZERO_OR_NAN]], [[NOT_NAN]]
# | ^
# | <stdin>:609:159: note: scanning from here
# | define nofpclass(snan) float @ret__pzero_or_nan__fmul_ninf__not_inf_or_nan(float nofpclass(inf nzero sub norm) %pzero.or.nan, float nofpclass(nan) %not.nan) {
# | ^
# | <stdin>:609:159: note: with "PZERO_OR_NAN" equal to "%pzero.or.nan"
# | define nofpclass(snan) float @ret__pzero_or_nan__fmul_ninf__not_inf_or_nan(float nofpclass(inf nzero sub norm) %pzero.or.nan, float nofpclass(nan) %not.nan) {
# | ^
# | <stdin>:609:159: note: with "NOT_NAN" equal to "%not.nan"
# | define nofpclass(snan) float @ret__pzero_or_nan__fmul_ninf__not_inf_or_nan(float nofpclass(inf nzero sub norm) %pzero.or.nan, float nofpclass(nan) %not.nan) {
# | ^
# | <stdin>:610:2: note: possible intended match here
# | %mul = call ninf float @llvm.copysign.f32(float %pzero.or.nan, float %not.nan)
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll:1280:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[MUL:%.*]] = fmul ninf float [[NOT_NAN]], [[PZERO_OR_NAN]]
# | ^
# | <stdin>:614:158: note: scanning from here
# | define nofpclass(snan) float @ret_not_inf_or_nan__fmul_ninf__pzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf nzero sub norm) %pzero.or.nan) {
# | ^
# | <stdin>:614:158: note: with "NOT_NAN" equal to "%not.nan"
# | define nofpclass(snan) float @ret_not_inf_or_nan__fmul_ninf__pzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf nzero sub norm) %pzero.or.nan) {
# | ^
# | <stdin>:614:158: note: with "PZERO_OR_NAN" equal to "%pzero.or.nan"
# | define nofpclass(snan) float @ret_not_inf_or_nan__fmul_ninf__pzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf nzero sub norm) %pzero.or.nan) {
# | ^
# | <stdin>:615:2: note: possible intended match here
# | %mul = call ninf float @llvm.copysign.f32(float %pzero.or.nan, float %not.nan)
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 322: define nofpclass(nan) float @ret_no_nan_result__known_negative_non0__fmul__known_inf_or_nan(float nofpclass(pinf zero psub pnorm) %negative.non0, float nofpclass(zero sub norm) %inf.or.nan) {
# | 323: %mul = fneg float %inf.or.nan
# | 324: ret float %mul
# | 325: }
# | 326:
# | 327: define nofpclass(nan inf) float @ret_noinf_nonan__known_pzero_or_nan__fmul__not_inf_or_nan(float nofpclass(inf nzero sub norm) %pzero.or.nan, float %unknown) {
# | next:693'0 X error: no match found
# | next:693'1 with "UNKNOWN" equal to "%unknown"
# | 328: %mul = call float @llvm.copysign.f32(float 0.000000e+00, float %unknown)
# | next:693'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:693'2 ? possible intended match
# | 329: ret float %mul
# | next:693'0 ~~~~~~~~~~~~~~~~
# | 330: }
# | next:693'0 ~~
# | 331:
# | next:693'0 ~
# | 332: define nofpclass(nan inf) float @ret_noinf_nonan__not_inf_or_nan__fmul__known_pzero_or_nan(float nofpclass(inf nzero sub norm) %pzero.or.nan, float %unknown) {
# | next:693'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:704'0 X error: no match found
# | next:704'1 with "UNKNOWN" equal to "%unknown"
# | 333: %mul = call float @llvm.copysign.f32(float 0.000000e+00, float %unknown)
# | next:704'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:704'2 ? possible intended match
# | 334: ret float %mul
# | next:704'0 ~~~~~~~~~~~~~~~~
# | 335: }
# | next:704'0 ~~
# | 336:
# | next:704'0 ~
# | 337: define nofpclass(inf) float @ret_noinf__known_zero_or_nan__fmul__not_nan(float nofpclass(nan nzero sub norm) %pzero.or.inf, float nofpclass(nan) %not.nan) {
# | next:704'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 338: %mul = fmul float %pzero.or.inf, %not.nan
# | .
# | .
# | .
# | 449: %fmul = fmul float %unknown, %zero
# | 450: ret float %fmul
# | 451: }
# | 452:
# | 453: define nofpclass(nan) float @ret_no_nan__fmul_pzero__unknown(float %unknown) {
# | 454: %pzero = call float @returns_pzero()
# | next:953'0 X error: no match found
# | next:953'1 with "UNKNOWN" equal to "%unknown"
# | 455: %fmul = call float @llvm.copysign.f32(float 0.000000e+00, float %unknown)
# | next:953'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:953'2 ? possible intended match
# | 456: ret float %fmul
# | next:953'0 ~~~~~~~~~~~~~~~~~
# | 457: }
# | next:953'0 ~~
# | 458:
# | next:953'0 ~
# | 459: define nofpclass(nan) float @ret_no_nan__fmul_unknown__pzero(float %unknown) {
# | next:953'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 460: %pzero = call float @returns_pzero()
# | next:965'0 X error: no match found
# | next:965'1 with "UNKNOWN" equal to "%unknown"
# | 461: %fmul = call float @llvm.copysign.f32(float 0.000000e+00, float %unknown)
# | next:965'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:965'2 ? possible intended match
# | 462: ret float %fmul
# | next:965'0 ~~~~~~~~~~~~~~~~~
# | 463: }
# | next:965'0 ~~
# | 464:
# | next:965'0 ~
# | 465: define nofpclass(nan) float @ret_no_nan__fmul_nzero__unknown(float %unknown) {
# | next:965'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 466: %nzero = call float @returns_nzero()
# | next:977'0 X error: no match found
# | next:977'1 with "UNKNOWN" equal to "%unknown"
# | 467: %1 = fneg float %unknown
# | next:977'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 468: %fmul = call float @llvm.copysign.f32(float 0.000000e+00, float %1)
# | next:977'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:977'2 ? possible intended match
# | 469: ret float %fmul
# | next:977'0 ~~~~~~~~~~~~~~~~~
# | 470: }
# | next:977'0 ~~
# | 471:
# | next:977'0 ~
# | 472: define nofpclass(nan) float @ret_no_nan__fmul_unknown__nzero(float %unknown) {
# | next:977'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 473: %nzero = call float @returns_nzero()
# | next:989'0 X error: no match found
# | next:989'1 with "UNKNOWN" equal to "%unknown"
# | 474: %1 = fneg float %unknown
# | next:989'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 475: %fmul = call float @llvm.copysign.f32(float 0.000000e+00, float %1)
# | next:989'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:989'2 ? possible intended match
# | 476: ret float %fmul
# | next:989'0 ~~~~~~~~~~~~~~~~~
# | 477: }
# | next:989'0 ~~
# | 478:
# | next:989'0 ~
# | 479: define nofpclass(ninf) float @ret_ninf__fmul_nnan_zero__unknown(float %unknown) {
# | next:989'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 480: %zero = call float @returns_zero()
# | .
# | .
# | .
# | 486: %zero = call float @returns_zero()
# | 487: %fmul = fmul nnan float %unknown, %zero
# | 488: ret float %fmul
# | 489: }
# | 490:
# | 491: define nofpclass(snan) float @known__nzero_or_nan__fmul__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan inf) %not.inf.or.nan) {
# | next:1025'0 X error: no match found
# | next:1025'1 with "NZERO_OR_NAN" equal to "%nzero.or.nan"
# | next:1025'2 with "NOT_INF_OR_NAN" equal to "%not.inf.or.nan"
# | 492: %1 = fneg contract float %not.inf.or.nan
# | next:1025'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 493: %mul = call contract float @llvm.copysign.f32(float %nzero.or.nan, float %1)
# | next:1025'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1025'3 ? possible intended match
# | 494: ret float %mul
# | next:1025'0 ~~~~~~~~~~~~~~~~
# | 495: }
# | next:1025'0 ~~
# | 496:
# | next:1025'0 ~
# | 497: define nofpclass(snan) float @known__not_inf_or_nan__fmul__nzero_or_nan(float nofpclass(nan inf) %not.inf.or.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | next:1025'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1036'0 X error: no match found
# | next:1036'1 with "NOT_INF_OR_NAN" equal to "%not.inf.or.nan"
# | next:1036'2 with "NZERO_OR_NAN" equal to "%nzero.or.nan"
# | 498: %1 = fneg contract float %not.inf.or.nan
# | next:1036'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 499: %mul = call contract float @llvm.copysign.f32(float %nzero.or.nan, float %1)
# | next:1036'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1036'3 ? possible intended match
# | 500: ret float %mul
# | next:1036'0 ~~~~~~~~~~~~~~~~
# | 501: }
# | next:1036'0 ~~
# | 502:
# | next:1036'0 ~
# | 503: define nofpclass(snan) float @known__nzero_or_nan__fmul__not_inf(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(inf) %not.inf) {
# | next:1036'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 504: %mul = fmul float %nzero.or.nan, %not.inf
# | .
# | .
# | .
# | 528: define nofpclass(inf) float @ret_noinf__not_inf_or_nan__fmul__nzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | 529: %mul = fmul float %not.nan, %nzero.or.nan
# | 530: ret float %mul
# | 531: }
# | 532:
# | 533: define nofpclass(nan) float @ret_nonan__nzero_or_nan__fmul__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan) %not.nan) {
# | next:1113'0 X error: no match found
# | next:1113'1 with "NOT_NAN" equal to "%not.nan"
# | 534: %1 = fneg float %not.nan
# | next:1113'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 535: %mul = call float @llvm.copysign.f32(float 0.000000e+00, float %1)
# | next:1113'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1113'2 ? possible intended match
# | 536: ret float %mul
# | next:1113'0 ~~~~~~~~~~~~~~~~
# | 537: }
# | next:1113'0 ~~
# | 538:
# | next:1113'0 ~
# | 539: define nofpclass(nan) float @ret_nonan__not_inf_or_nan__fmul__nzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | next:1113'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1124'0 X error: no match found
# | next:1124'1 with "NOT_NAN" equal to "%not.nan"
# | 540: %1 = fneg float %not.nan
# | next:1124'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 541: %mul = call float @llvm.copysign.f32(float 0.000000e+00, float %1)
# | next:1124'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1124'2 ? possible intended match
# | 542: ret float %mul
# | next:1124'0 ~~~~~~~~~~~~~~~~
# | 543: }
# | next:1124'0 ~~
# | 544:
# | next:1124'0 ~
# | 545: define nofpclass(snan) float @ret__nzero_or_nan__fmul_ninf__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float nofpclass(nan) %not.nan) {
# | next:1124'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1135'0 X error: no match found
# | next:1135'1 with "NZERO_OR_NAN" equal to "%nzero.or.nan"
# | next:1135'2 with "NOT_NAN" equal to "%not.nan"
# | 546: %1 = fneg ninf float %not.nan
# | next:1135'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 547: %mul = call ninf float @llvm.copysign.f32(float %nzero.or.nan, float %1)
# | next:1135'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1135'3 ? possible intended match
# | 548: ret float %mul
# | next:1135'0 ~~~~~~~~~~~~~~~~
# | 549: }
# | next:1135'0 ~~
# | 550:
# | next:1135'0 ~
# | 551: define nofpclass(snan) float @ret_not_inf_or_nan__fmul_ninf__nzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf pzero sub norm) %nzero.or.nan) {
# | next:1135'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1146'0 X error: no match found
# | next:1146'1 with "NOT_NAN" equal to "%not.nan"
# | next:1146'2 with "NZERO_OR_NAN" equal to "%nzero.or.nan"
# | 552: %1 = fneg ninf float %not.nan
# | next:1146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 553: %mul = call ninf float @llvm.copysign.f32(float %nzero.or.nan, float %1)
# | next:1146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1146'3 ? possible intended match
# | 554: ret float %mul
# | next:1146'0 ~~~~~~~~~~~~~~~~
# | 555: }
# | next:1146'0 ~~
# | 556:
# | next:1146'0 ~
# | 557: define nofpclass(snan) float @ret__nzero_or_nan__fmul_nnan__not_inf_or_nan(float nofpclass(inf pzero sub norm) %nzero.or.nan, float %unknown) {
# | next:1146'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 558: %1 = fneg nnan float %unknown
# | .
# | .
# | .
# | 604: define nofpclass(inf) float @ret_noinf__not_inf_or_nan__fmul__pzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf nzero sub norm) %pzero.or.nan) {
# | 605: %mul = fmul float %not.nan, %pzero.or.nan
# | 606: ret float %mul
# | 607: }
# | 608:
# | 609: define nofpclass(snan) float @ret__pzero_or_nan__fmul_ninf__not_inf_or_nan(float nofpclass(inf nzero sub norm) %pzero.or.nan, float nofpclass(nan) %not.nan) {
# | next:1269'0 X error: no match found
# | next:1269'1 with "PZERO_OR_NAN" equal to "%pzero.or.nan"
# | next:1269'2 with "NOT_NAN" equal to "%not.nan"
# | 610: %mul = call ninf float @llvm.copysign.f32(float %pzero.or.nan, float %not.nan)
# | next:1269'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1269'3 ? possible intended match
# | 611: ret float %mul
# | next:1269'0 ~~~~~~~~~~~~~~~~
# | 612: }
# | next:1269'0 ~~
# | 613:
# | next:1269'0 ~
# | 614: define nofpclass(snan) float @ret_not_inf_or_nan__fmul_ninf__pzero_or_nan(float nofpclass(nan) %not.nan, float nofpclass(inf nzero sub norm) %pzero.or.nan) {
# | next:1269'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1280'0 X error: no match found
# | next:1280'1 with "NOT_NAN" equal to "%not.nan"
# | next:1280'2 with "PZERO_OR_NAN" equal to "%pzero.or.nan"
# | 615: %mul = call ninf float @llvm.copysign.f32(float %pzero.or.nan, float %not.nan)
# | next:1280'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1280'3 ? possible intended match
# | 616: ret float %mul
# | next:1280'0 ~~~~~~~~~~~~~~~~
# | 617: }
# | next:1280'0 ~~
# | 618:
# | next:1280'0 ~
# | 619: define nofpclass(nan inf sub norm) float @zero_result_demands_sub_source_lhs(i1 %cond, float %unknown0, float %unknown1) {
# | next:1280'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 620: %sub = call float @returns_sub()
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/174024
More information about the llvm-branch-commits
mailing list