[llvm] [KnownFPClass] Fix KnownFPClass::frem subnormal handling and improve deductions. (PR #219303)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 27 15:48:05 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 181455 tests passed
* 3780 tests skipped
* 2 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Transforms/Attributor/nofpclass-frem.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Attributor/nofpclass-frem.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --allow-unused-prefixes /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Attributor/nofpclass-frem.ll --check-prefixes=CHECK,TUNIT
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --allow-unused-prefixes /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Attributor/nofpclass-frem.ll --check-prefixes=CHECK,TUNIT
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Attributor/nofpclass-frem.ll:65:16: error: CHECK-LABEL: expected string not found in input
# | ; CHECK-LABEL: define nofpclass(inf) float @ret_frem_ieee_nonan__nonan_noinf_nozero
# | ^
# | <stdin>:35:74: note: scanning from here
# | define nofpclass(snan inf) float @ret_frem_ieee_nonan_noinf_nozero__nonan(float nofpclass(nan inf zero) %arg0, float nofpclass(nan) %arg1) #0 {
# | ^
# | <stdin>:41:1: note: possible intended match here
# | define nofpclass(snan inf) float @ret_frem_ieee_nonan__nonan_noinf_nozero(float nofpclass(nan) %arg0, float nofpclass(nan inf zero) %arg1) #0 {
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/Attributor/nofpclass-frem.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 30: %frem = frem float %arg0, %arg1
# | 31: ret float %frem
# | 32: }
# | 33:
# | 34: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn denormal_fpenv(ieee) memory(none)
# | 35: define nofpclass(snan inf) float @ret_frem_ieee_nonan_noinf_nozero__nonan(float nofpclass(nan inf zero) %arg0, float nofpclass(nan) %arg1) #0 {
# | label:65'0 { search range start (exclusive)
# | label:65'1 error: no match found in search range
# | 36: %frem = frem float %arg0, %arg1
# | 37: ret float %frem
# | 38: }
# | 39:
# | 40: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn denormal_fpenv(ieee) memory(none)
# | 41: define nofpclass(snan inf) float @ret_frem_ieee_nonan__nonan_noinf_nozero(float nofpclass(nan) %arg0, float nofpclass(nan inf zero) %arg1) #0 {
# | label:65'2 ? possible intended match
# | 42: %frem = frem float %arg0, %arg1
# | 43: ret float %frem
# | 44: }
# | 45:
# | 46: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn denormal_fpenv(ieee) memory(none)
# | .
# | .
# | .
# | 834: attributes #9 = { mustprogress nofree norecurse nosync nounwind willreturn denormal_fpenv(positivezero|dynamic) memory(none) }
# | 835: attributes #10 = { mustprogress nofree norecurse nosync nounwind willreturn denormal_fpenv(preservesign) memory(none) }
# | 836: attributes #11 = { mustprogress nofree norecurse nosync nounwind willreturn denormal_fpenv(dynamic|ieee) memory(none) }
# | 837: attributes #12 = { mustprogress nofree norecurse nosync nounwind willreturn denormal_fpenv(positivezero|ieee) memory(none) }
# | 838: attributes #13 = { nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none) }
# | 839: attributes #14 = { nofree nosync willreturn }
# | label:65'3 } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
### LLVM-Unit
<details>
<summary>LLVM-Unit.CodeGen/GlobalISel/_/GlobalISelTests/AArch64GISelMITest/TestFPClassFRemSelf_KnownFiniteNonZero</summary>
```
Script:
--
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/unittests/CodeGen/GlobalISel/./GlobalISelTests --gtest_filter=AArch64GISelMITest.TestFPClassFRemSelf_KnownFiniteNonZero
--
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/CodeGen/GlobalISel/KnownFPClassTest.cpp:1356
Expected equality of these values:
fcZero
Which is: (zero)
Known.KnownFPClasses
Which is: (pzero)
```
</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/219303
More information about the llvm-commits
mailing list