[llvm] [ARM] Add strict uint to FP conversion handling during operation legalization (PR #208554)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 15 13:53:57 PDT 2026


github-actions[bot] wrote:

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

* 178936 tests passed
* 3540 tests skipped
* 3 tests failed

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

### lldb-api
<details>
<summary>lldb-api.lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable.py</summary>

```
Script:
--
/usr/bin/python3 /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/dotest.py -u CXXFLAGS -u CFLAGS --env LLVM_LIBS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --env LLVM_INCLUDE_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include --env LLVM_TOOLS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --libcxx-include-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/c++/v1 --libcxx-include-target-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/x86_64-unknown-linux-gnu/c++/v1 --libcxx-library-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib/x86_64-unknown-linux-gnu --triple x86_64-unknown-linux-gnu --build-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build --lldb-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build/module-cache-lldb/lldb-api --clang-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build/module-cache-clang/lldb-api --executable /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/lldb --lldb-python-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/local/lib/python3.12/dist-packages --compiler /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang --dsymutil /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/dsymutil --make /usr/bin/gmake --llvm-tools-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --lldb-obj-root /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lldb --lldb-libs-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --cmake-build-type Release /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/lang/cpp/std-function-step-into-callable -p TestStdFunctionStepIntoCallable.py
--
Exit Code: 1

Command Output (stdout):
--
Skipping the following test categories: msvcstl, dsym, pdb, gmodules, debugserver, objc

--
Command Output (stderr):
--
FAIL: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test (TestStdFunctionStepIntoCallable.LibCxxFunctionSteppingIntoCallableTestCase.test)
Log Files:
 - /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build/lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable/Failure_test.log
======================================================================
FAIL: test (TestStdFunctionStepIntoCallable.LibCxxFunctionSteppingIntoCallableTestCase.test)
   Test that std::function as defined by libc++ is correctly printed by LLDB
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable.py", line 54, in test
    self.assertEqual(
AssertionError: 32 != 4
Config=x86_64-/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang
----------------------------------------------------------------------
Ran 1 test in 0.691s

FAILED (failures=1)

--

```
</details>

### LLVM
<details>
<summary>LLVM.CodeGen/ARM/fp-intrinsics-vector.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=armv7a-none-eabihf -mattr=+neon,+vfp4 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fp-intrinsics-vector.ll -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fp-intrinsics-vector.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=armv7a-none-eabihf -mattr=+neon,+vfp4 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fp-intrinsics-vector.ll -o -
# 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/CodeGen/ARM/fp-intrinsics-vector.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fp-intrinsics-vector.ll:190:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmov.32 r0, d1[1]
# |               ^
# | <stdin>:247:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:250:6: note: possible intended match here
# |  vcvt.f32.s32 s5, s1
# |      ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fp-intrinsics-vector.ll:211:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vmov.32 r0, d1[1]
# |               ^
# | <stdin>:264:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:267:6: note: possible intended match here
# |  vcvt.f32.u32 s5, s1
# |      ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fp-intrinsics-vector.ll:773:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vcvt.f64.s32 d17, s1
# |               ^
# | <stdin>:910:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:915:2: note: possible intended match here
# |  vcvt.f64.s32 d1, s0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fp-intrinsics-vector.ll:784:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: vcvt.f64.u32 d17, s1
# |               ^
# | <stdin>:928:9: note: scanning from here
# | @ %bb.0:
# |         ^
# | <stdin>:933:2: note: possible intended match here
# |  vcvt.f64.u32 d1, s0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/ARM/fp-intrinsics-vector.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           242:  .p2align 2 
# |           243:  .type sitofp_v4f32_v4i32,%function 
# |           244:  .code 32 
# |           245: sitofp_v4f32_v4i32: @ @sitofp_v4f32_v4i32 
# |           246:  .fnstart 
# |           247: @ %bb.0: 
# | next:190'0            {   search range start (exclusive)
# | next:190'1                error: no match found in search range
# |           248:  vcvt.f32.s32 s7, s3 
# |           249:  vcvt.f32.s32 s6, s2 
# |           250:  vcvt.f32.s32 s5, s1 
# | next:190'2          ?                 possible intended match
# |           251:  vcvt.f32.s32 s4, s0 
# |           252:  vorr q0, q1, q1 
# |           253:  bx lr 
# |           254: .Lfunc_end9: 
# |           255:  .size sitofp_v4f32_v4i32, .Lfunc_end9-sitofp_v4f32_v4i32 
# |           256:  .fnend 
# |           257:  @ -- End function 
# |           258:  .globl uitofp_v4f32_v4i32 @ -- Begin function uitofp_v4f32_v4i32 
# |           259:  .p2align 2 
# |           260:  .type uitofp_v4f32_v4i32,%function 
# |           261:  .code 32 
# |           262: uitofp_v4f32_v4i32: @ @uitofp_v4f32_v4i32 
# | next:190'3                        }                        search range end (exclusive)
# |           263:  .fnstart 
# |           264: @ %bb.0: 
# | next:211'0            {   search range start (exclusive)
# | next:211'1                error: no match found in search range
# |           265:  vcvt.f32.u32 s7, s3 
# |           266:  vcvt.f32.u32 s6, s2 
# |           267:  vcvt.f32.u32 s5, s1 
# | next:211'2          ?                 possible intended match
# |           268:  vcvt.f32.u32 s4, s0 
# |           269:  vorr q0, q1, q1 
# |           270:  bx lr 
# |           271: .Lfunc_end10: 
# |           272:  .size uitofp_v4f32_v4i32, .Lfunc_end10-uitofp_v4f32_v4i32 
# |           273:  .fnend 
# |           274:  @ -- End function 
# |           275:  .globl sitofp_v4f32_v4i64 @ -- Begin function sitofp_v4f32_v4i64 
# |           276:  .p2align 2 
# |           277:  .type sitofp_v4f32_v4i64,%function 
# |           278:  .code 32 
# |           279: sitofp_v4f32_v4i64: @ @sitofp_v4f32_v4i64 
# | next:211'3                        }                        search range end (exclusive)
# |           280:  .fnstart 
# |           281: @ %bb.0: 
# |           282:  .save {r4, r5, r6, lr} 
# |           283:  push {r4, r5, r6, lr} 
# |           284:  .vsave {d8, d9, d10, d11} 
# |             .
# |             .
# |             .
# |           905:  .p2align 2 
# |           906:  .type sitofp_v2f64_v2i32,%function 
# |           907:  .code 32 
# |           908: sitofp_v2f64_v2i32: @ @sitofp_v2f64_v2i32 
# |           909:  .fnstart 
# |           910: @ %bb.0: 
# | next:773'0            {   search range start (exclusive)
# | next:773'1                error: no match found in search range
# |           911:  vmov.32 r0, d0[1] 
# |           912:  vmov.32 r1, d0[0] 
# |           913:  vmov s0, r0 
# |           914:  vmov s4, r1 
# |           915:  vcvt.f64.s32 d1, s0 
# | next:773'2      ?                     possible intended match
# |           916:  vcvt.f64.s32 d0, s4 
# |           917:  bx lr 
# |           918: .Lfunc_end34: 
# |           919:  .size sitofp_v2f64_v2i32, .Lfunc_end34-sitofp_v2f64_v2i32 
# |           920:  .fnend 
# |           921:  @ -- End function 
# |           922:  .globl uitofp_v2f64_v2i32 @ -- Begin function uitofp_v2f64_v2i32 
# |           923:  .p2align 2 
# |           924:  .type uitofp_v2f64_v2i32,%function 
# |           925:  .code 32 
# |           926: uitofp_v2f64_v2i32: @ @uitofp_v2f64_v2i32 
# | next:773'3                        }                        search range end (exclusive)
# |           927:  .fnstart 
# |           928: @ %bb.0: 
# | next:784'0            {   search range start (exclusive)
# | next:784'1                error: no match found in search range
# |           929:  vmov.32 r0, d0[1] 
# |           930:  vmov.32 r1, d0[0] 
# |           931:  vmov s0, r0 
# |           932:  vmov s4, r1 
# |           933:  vcvt.f64.u32 d1, s0 
# | next:784'2      ?                     possible intended match
# |           934:  vcvt.f64.u32 d0, s4 
# |           935:  bx lr 
# |           936: .Lfunc_end35: 
# |           937:  .size uitofp_v2f64_v2i32, .Lfunc_end35-uitofp_v2f64_v2i32 
# |           938:  .fnend 
# |           939:  @ -- End function 
# |           940:  .globl sitofp_v2f64_v2i64 @ -- Begin function sitofp_v2f64_v2i64 
# |           941:  .p2align 2 
# |           942:  .type sitofp_v2f64_v2i64,%function 
# |           943:  .code 32 
# |           944: sitofp_v2f64_v2i64: @ @sitofp_v2f64_v2i64 
# | next:784'3                        }                        search range end (exclusive)
# |           945:  .fnstart 
# |           946: @ %bb.0: 
# |           947:  .save {r11, lr} 
# |           948:  push {r11, lr} 
# |           949:  .vsave {d8, d9} 
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.CodeGen/SystemZ/zos-ppa2.ll (Likely Already Failing)</summary>
This test is already failing at the base commit.

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
sed -e 's/!"MODE"/!"ascii"/' -e 's/BYTE/85/' /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/SystemZ/zos-ppa2.ll > /home/gha/actions-runner/_work/llvm-project/llvm-project/build/test/CodeGen/SystemZ/Output/zos-ppa2.ll.tmp.ascii.ll
# executed command: sed -e 's/!"MODE"/!"ascii"/' -e s/BYTE/85/ /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/SystemZ/zos-ppa2.ll
# note: command had no output on stdout or stderr
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple s390x-ibm-zos -mcpu=z15 -asm-verbose=true < /home/gha/actions-runner/_work/llvm-project/llvm-project/build/test/CodeGen/SystemZ/Output/zos-ppa2.ll.tmp.ascii.ll |  /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/build/test/CodeGen/SystemZ/Output/zos-ppa2.ll.tmp.ascii.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple s390x-ibm-zos -mcpu=z15 -asm-verbose=true
# 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/build/test/CodeGen/SystemZ/Output/zos-ppa2.ll.tmp.ascii.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/test/CodeGen/SystemZ/Output/zos-ppa2.ll.tmp.ascii.ll:24:10: error: CHECK: expected string not found in input
# | ; CHECK: DC XL6'F2F3F0F0F0F0'
# |          ^
# | <stdin>:17:39: note: scanning from here
# |  DC XL14'F1F9F7F0F0F1F0F1F0F0F0F0F0F0' 
# |                                       ^
# | <stdin>:18:2: note: possible intended match here
# |  DC XL6'F2F4F0F0F0F0' 
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/test/CodeGen/SystemZ/Output/zos-ppa2.ll.tmp.ascii.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            12:  DC XL4'00000000'  
# |            13:  DC XL1'85'  
# |            14:  DC XL1'00'  
# |            15:  DC XL2'0000'  
# |            16: L#DVS DS 0H  
# |            17:  DC XL14'F1F9F7F0F0F1F0F1F0F0F0F0F0F0'  
# | check:24'0                                          {    search range start (exclusive)
# | check:24'1                                               error: no match found in search range
# |            18:  DC XL6'F2F4F0F0F0F0'  
# | check:24'2      ?                       possible intended match
# |            19:  DC XL2'0000'  
# |            20: stdin#C CSECT  
# |            21: C_@@QPPA2 CATTR ALIGN(3),FILL(0),NOTEXECUTABLE,READONLY,RMODE(64),PART(.  
# |            22:  .&ppa2)  
# |            23: .&ppa2 XATTR LINKAGE(OS),REFERENCE(DATA),SCOPE(SECTION)  
# |             .
# |             .
# |             .
# |           102:  DC XL30'D3D3E5D4404040404040F2F4F0F0F1F9F7F0F0F1F0F1F0F0F0F0F0F0F0F0'  
# |           103: stdin#C CSECT  
# |           104: C_CODE64 CATTR  
# |           105:  EXTRN CELQSTRT  
# |           106: CELQSTRT XATTR LINKAGE(OS),SCOPE(EXPORT)  
# |           107:  END  
# | check:24'3           } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# 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/208554


More information about the llvm-commits mailing list