[llvm] [X86] Perform i128/i256/i512 BITREVERSE on the FPU (PR #187502)

via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 19 16:10:14 PDT 2026


github-actions[bot] wrote:

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

* 171543 tests passed
* 3061 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/X86/bitreverse.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/X86/bitreverse.ll -mtriple=i686-unknown | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/X86/bitreverse.ll --check-prefixes=CHECK,X86
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=i686-unknown
# 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/X86/bitreverse.ll --check-prefixes=CHECK,X86
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/X86/bitreverse.ll -mtriple=x86_64-unknown | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/X86/bitreverse.ll --check-prefixes=CHECK,X64
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=x86_64-unknown
# 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/X86/bitreverse.ll --check-prefixes=CHECK,X64
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/X86/bitreverse.ll -mtriple=i686-unknown -mattr=+xop | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/X86/bitreverse.ll --check-prefixes=CHECK,X86XOP
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=i686-unknown -mattr=+xop
# 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/X86/bitreverse.ll --check-prefixes=CHECK,X86XOP
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/X86/bitreverse.ll:834:16: error: X86XOP-NEXT: expected string not found in input
# | ; X86XOP-NEXT: vmovdqa {{.*#+}} xmm0 = [87,86,85,84,83,82,81,80,95,94,93,92,91,90,89,88]
# |                ^
# | <stdin>:378:20: note: scanning from here
# |  movl 8(%ebp), %eax
# |                    ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/X86/bitreverse.ll:1147:16: error: X86XOP-NEXT: expected string not found in input
# | ; X86XOP-NEXT: vmovdqa {{.*#+}} xmm0 = [87,86,85,84,83,82,81,80,95,94,93,92,91,90,89,88]
# |                ^
# | <stdin>:413:20: note: scanning from here
# |  movl 4(%esp), %eax
# |                    ^
# | <stdin>:416:22: note: possible intended match here
# |  vmovdqa .LCPI16_0, %xmm1 # xmm1 = [87,86,85,84,83,82,81,80,95,94,93,92,91,90,89,88]
# |                      ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/X86/bitreverse.ll:1735:16: error: X86XOP-NEXT: expected string not found in input
# | ; X86XOP-NEXT: subl $16, %esp
# |                ^
# | <stdin>:451:9: note: scanning from here
# | # %bb.0:
# |         ^
# | <stdin>:459:10: note: possible intended match here
# |  vperm2f128 $35, 8(%esp), %ymm0, %ymm3 # ymm3 = mem[2,3,0,1]
# |          ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/X86/bitreverse.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            373: # %bb.0: 
# |            374:  pushl %ebp 
# |            375:  movl %esp, %ebp 
# |            376:  andl $-16, %esp 
# |            377:  subl $16, %esp 
# |            378:  movl 8(%ebp), %eax 
# | next:834                           X error: no match found
# |            379:  vpshufd $78, 24(%ebp), %xmm0 # xmm0 = mem[2,3,0,1] 
# | next:834        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            380:  vpperm .LCPI15_0, %xmm0, %xmm0, %xmm0 
# | next:834        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            381:  vmovdqa %xmm0, (%eax) 
# | next:834        ~~~~~~~~~~~~~~~~~~~~~~~
# |            382:  movl %ebp, %esp 
# | next:834        ~~~~~~~~~~~~~~~~~
# |            383:  popl %ebp 
# | next:834        ~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            408:  .globl test_bitreverse_i256 
# | next:834        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            409:  .p2align 4 
# | next:834        ~~~~~~~~~~~~
# |            410:  .type test_bitreverse_i256, at function 
# | next:834        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            411: test_bitreverse_i256: # @test_bitreverse_i256 
# | next:834        ~~~~~~~~~~~~~~~~~~~~~
# |            412: # %bb.0: 
# |            413:  movl 4(%esp), %eax 
# | next:1147'0                        X error: no match found
# |            414:  vperm2f128 $35, 8(%esp), %ymm0, %ymm0 # ymm0 = mem[2,3,0,1] 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            415:  vshufpd $5, %ymm0, %ymm0, %ymm0 # ymm0 = ymm0[1,0,3,2] 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            416:  vmovdqa .LCPI16_0, %xmm1 # xmm1 = [87,86,85,84,83,82,81,80,95,94,93,92,91,90,89,88] 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1147'1                          ?                                                                possible intended match
# |            417:  vpperm %xmm1, %xmm0, %xmm0, %xmm2 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            418:  vextractf128 $1, %ymm0, %xmm0 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            419:  vpperm %xmm1, %xmm0, %xmm0, %xmm0 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            420:  vmovdqa %xmm0, 16(%eax) 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |            421:  vmovdqa %xmm2, (%eax) 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            446:  .text 
# | next:1147'0     ~~~~~~~
# |            447:  .globl test_bitreverse_i512 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            448:  .p2align 4 
# | next:1147'0     ~~~~~~~~~~~~
# |            449:  .type test_bitreverse_i512, at function 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            450: test_bitreverse_i512: # @test_bitreverse_i512 
# | next:1147'0     ~~~~~~~~~~~~~~~~~~~~~
# |            451: # %bb.0: 
# | next:1735'0             X error: no match found
# |            452:  movl 4(%esp), %eax 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~
# |            453:  vperm2f128 $35, 40(%esp), %ymm0, %ymm0 # ymm0 = mem[2,3,0,1] 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            454:  vshufpd $5, %ymm0, %ymm0, %ymm0 # ymm0 = ymm0[1,0,3,2] 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            455:  vmovdqa .LCPI17_0, %xmm1 # xmm1 = [87,86,85,84,83,82,81,80,95,94,93,92,91,90,89,88] 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            456:  vpperm %xmm1, %xmm0, %xmm0, %xmm2 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            457:  vextractf128 $1, %ymm0, %xmm0 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            458:  vpperm %xmm1, %xmm0, %xmm0, %xmm0 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            459:  vperm2f128 $35, 8(%esp), %ymm0, %ymm3 # ymm3 = mem[2,3,0,1] 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1735'1              ?                                                    possible intended match
# |            460:  vshufpd $5, %ymm3, %ymm3, %ymm3 # ymm3 = ymm3[1,0,3,2] 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            461:  vpperm %xmm1, %xmm3, %xmm0, %xmm4 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            462:  vextractf128 $1, %ymm3, %xmm3 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            463:  vpperm %xmm1, %xmm3, %xmm0, %xmm1 
# | next:1735'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            464:  vmovdqa %xmm1, 48(%eax) 
# | next:1735'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/187502


More information about the llvm-commits mailing list