[llvm] [Hexagon] Add an option to use fast FP to int convert for some HVX cases (PR #169562)

via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 25 12:46:59 PST 2025


github-actions[bot] wrote:

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

* 166364 tests passed
* 2868 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/Hexagon/autohvx/fp-to-int_2.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=hexagon -mv73 -mhvx -mattr=+hvx-length128b  -hexagon-hvx-widen=32 -hexagon-fp-fast-convert=true < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Hexagon/autohvx/fp-to-int_2.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Hexagon/autohvx/fp-to-int_2.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=hexagon -mv73 -mhvx -mattr=+hvx-length128b -hexagon-hvx-widen=32 -hexagon-fp-fast-convert=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/llvm/test/CodeGen/Hexagon/autohvx/fp-to-int_2.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Hexagon/autohvx/fp-to-int_2.ll:12:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: v1.h = v0.hf
# |               ^
# | <stdin>:13:3: note: scanning from here
# |  {
# |   ^
# | <stdin>:159:10: note: possible intended match here
# |  vmem(r29+#5) = v0.new
# |          ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Hexagon/autohvx/fp-to-int_2.ll:26:10: error: CHECK: expected string not found in input
# | ; CHECK: v{{.*}}.w = v{{.*}}.sf
# |          ^
# | <stdin>:949:9: note: scanning from here
# | f32s8_2: // @f32s8_2
# |         ^
# | <stdin>:959:2: note: possible intended match here
# |  v1 = v0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Hexagon/autohvx/fp-to-int_2.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |             8:  .p2align 4 
# |             9:  .type f16s16_0, at function 
# |            10: f16s16_0: // @f16s16_0 
# |            11:  .cfi_startproc 
# |            12: // %bb.0: 
# |            13:  { 
# | next:12'0        X error: no match found
# |            14:  allocframe(r29,#1024):raw 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            15:  } 
# | next:12'0      ~~~
# |            16:  .cfi_def_cfa r30, 8 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~~~
# |            17:  .cfi_offset r31, -4 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~~~
# |            18:  .cfi_offset r30, -8 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           154:  r0 = lsr(r1,#16) 
# | next:12'0      ~~~~~~~~~~~~~~~~~~
# |           155:  } 
# | next:12'0      ~~~
# |           156:  { 
# | next:12'0      ~~~
# |           157:  r0 = convert_sf2w(r0):chop 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           158:  v0 = vxor(v0,v0) 
# | next:12'0      ~~~~~~~~~~~~~~~~~~
# |           159:  vmem(r29+#5) = v0.new 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~~~~~
# | next:12'1               ?              possible intended match
# |           160:  } // 128-byte Folded Spill 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           161:  { 
# | next:12'0      ~~~
# |           162:  r2 = memw(r18+#8) 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~
# |           163:  } 
# | next:12'0      ~~~
# |           164:  { 
# | next:12'0      ~~~
# |             .
# |             .
# |             .
# |           944:  .cfi_endproc 
# | next:12'0      ~~~~~~~~~~~~~~
# |           945:  // -- End function 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~~
# |           946:  .globl f32s8_2 // -- Begin function f32s8_2 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           947:  .p2align 4 
# | next:12'0      ~~~~~~~~~~~~
# |           948:  .type f32s8_2, at function 
# | next:12'0      ~~~~~~~~~~~~~~~~~~~~~~~~~
# |           949: f32s8_2: // @f32s8_2 
# | next:12'0      ~~~~~~~~
# | check:26'0             X~~~~~~~~~~~~ error: no match found
# |           950:  .cfi_startproc 
# | check:26'0     ~~~~~~~~~~~~~~~~
# |           951: // %bb.0: 
# | check:26'0     ~~~~~~~~~~
# |           952:  { 
# | check:26'0     ~~~
# |           953:  r29 = add(r29,#-48) 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~
# |           954:  v0 = vxor(v0,v0) 
# | check:26'0     ~~~~~~~~~~~~~~~~~~
# |           955:  r7:6 = memd(r0+#104) 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           956:  r5:4 = memd(r0+#112) 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           957:  } 
# | check:26'0     ~~~
# |           958:  { 
# | check:26'0     ~~~
# |           959:  v1 = v0 
# | check:26'0     ~~~~~~~~~
# | check:26'1      ?        possible intended match
# |           960:  r15:14 = memd(r0+#8) 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           961:  memd(r29+#32) = r19:18 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~
# |           962:  } // 8-byte Folded Spill 
# | check:26'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           963:  { 
# | check:26'0     ~~~
# |           964:  r7 = convert_sf2w(r7):chop 
# | check:26'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/169562


More information about the llvm-commits mailing list