[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