Skip to content

[X86] combineX86ShuffleChain - prefer combining to X86ISD::SHUF128 if PERMQ operands are splittable #133900

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 1, 2025

Conversation

RKSimon
Copy link
Collaborator

@RKSimon RKSimon commented Apr 1, 2025

If the 512-bit unary shuffle is a concatenation of 128/256-bit subvectors then we're better off using a X86ISD::SHUF128 node so we can fold the concatenation into the shuffle as well.

… the PERMQ operands is splittable

If the 512-bit unary shuffle is a concatenation of 128/256-bit subvectors then we're better off using a X86ISD::SHUF128 node so we can fold the concatenation into the shuffle as well.
@RKSimon RKSimon merged commit 2c0b888 into llvm:main Apr 1, 2025
12 checks passed
@RKSimon RKSimon deleted the x86-prefer-512-shuf128-permq branch April 1, 2025 12:47
@llvm-ci
Copy link
Collaborator

llvm-ci commented Apr 1, 2025

LLVM Buildbot has detected a new failure on builder lldb-x86_64-debian running on lldb-x86_64-debian while building llvm at step 6 "test".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/162/builds/19291

Here is the relevant piece of the build log for the reference
Step 6 (test) failure: build (failure)
...
XFAIL: lldb-api :: functionalities/thread/multi_break/TestMultipleBreakpoints.py (307 of 2804)
PASS: lldb-api :: python_api/file_handle/TestFileHandle.py (308 of 2804)
PASS: lldb-api :: commands/frame/var/TestFrameVar.py (309 of 2804)
PASS: lldb-api :: commands/command/backticks/TestBackticksInAlias.py (310 of 2804)
PASS: lldb-shell :: Expr/TestIRMemoryMap.test (311 of 2804)
PASS: lldb-api :: functionalities/vtable/TestVTableValue.py (312 of 2804)
PASS: lldb-api :: functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py (313 of 2804)
PASS: lldb-api :: functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneDelayBreakpoint.py (314 of 2804)
PASS: lldb-api :: functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py (315 of 2804)
UNRESOLVED: lldb-api :: driver/batch_mode/TestBatchMode.py (316 of 2804)
******************** TEST 'lldb-api :: driver/batch_mode/TestBatchMode.py' FAILED ********************
Script:
--
/usr/bin/python3 /home/worker/2.0.1/lldb-x86_64-debian/llvm-project/lldb/test/API/dotest.py -u CXXFLAGS -u CFLAGS --env LLVM_LIBS_DIR=/home/worker/2.0.1/lldb-x86_64-debian/build/./lib --env LLVM_INCLUDE_DIR=/home/worker/2.0.1/lldb-x86_64-debian/build/include --env LLVM_TOOLS_DIR=/home/worker/2.0.1/lldb-x86_64-debian/build/./bin --arch x86_64 --build-dir /home/worker/2.0.1/lldb-x86_64-debian/build/lldb-test-build.noindex --lldb-module-cache-dir /home/worker/2.0.1/lldb-x86_64-debian/build/lldb-test-build.noindex/module-cache-lldb/lldb-api --clang-module-cache-dir /home/worker/2.0.1/lldb-x86_64-debian/build/lldb-test-build.noindex/module-cache-clang/lldb-api --executable /home/worker/2.0.1/lldb-x86_64-debian/build/./bin/lldb --compiler /home/worker/2.0.1/lldb-x86_64-debian/build/./bin/clang --dsymutil /home/worker/2.0.1/lldb-x86_64-debian/build/./bin/dsymutil --make /usr/bin/gmake --llvm-tools-dir /home/worker/2.0.1/lldb-x86_64-debian/build/./bin --lldb-obj-root /home/worker/2.0.1/lldb-x86_64-debian/build/tools/lldb --lldb-libs-dir /home/worker/2.0.1/lldb-x86_64-debian/build/./lib -t /home/worker/2.0.1/lldb-x86_64-debian/llvm-project/lldb/test/API/driver/batch_mode -p TestBatchMode.py
--
Exit Code: 1

Command Output (stdout):
--
lldb version 21.0.0git (https://github.com/llvm/llvm-project.git revision 2c0b888359c6c5976054bb423ba1d7b37bae9f1a)
  clang revision 2c0b888359c6c5976054bb423ba1d7b37bae9f1a
  llvm revision 2c0b888359c6c5976054bb423ba1d7b37bae9f1a
�7�[0;23r�8�[1A
(lldb) settings clear -all
�7
                                                                                �[0m�8(lldb) settings set symbols.enable-external-lookup false
(lldb) settings set target.inherit-tcc true
(lldb) settings set target.disable-aslr false
(lldb) settings set target.detach-on-error false
(lldb) settings set target.auto-apply-fixits false
(lldb) settings set plugin.process.gdb-remote.packet-timeout 60
(lldb) settings set symbols.clang-modules-cache-path "/home/worker/2.0.1/lldb-x86_64-debian/build/lldb-test-build.noindex/module-cache-lldb/lldb-api"
(lldb) settings set use-color false
(lldb) settings set show-statusline false
�7�[0;24r�8�[J(lldb) target create "/home/worker/2.0.1/lldb-x86_64-debian/build/lldb-test-build.noindex/driver/batch_mode/TestBatchMode.test_batch_mode_attach_exit/a.out"
Current executable set to '/home/worker/2.0.1/lldb-x86_64-debian/build/lldb-test-build.noindex/driver/batch_mode/TestBatchMode.test_batch_mode_attach_exit/a.out' (x86_64).
(lldb) process attach -p 546601
Process 546601 stopped
* thread #1, name = 'a.out', stop reason = signal SIGSTOP
    frame #0: 0x00007f06076ee443 libc.so.6`clock_nanosleep + 35
libc.so.6`clock_nanosleep:
->  0x7f06076ee443 <+35>: negl   %eax
    0x7f06076ee445 <+37>: retq   
    0x7f06076ee446 <+38>: nopw   %cs:(%rax,%rax)
    0x7f06076ee450 <+48>: subq   $0x28, %rsp
(lldb) breakpoint set --file 'main.c' -p 'Stop here to unset keep_waiting' -N keep_waiting
Breakpoint 1: where = a.out`main + 221 at main.c:29:13, address = 0x000055d8fb81b25d
(lldb) continue
Process 546601 resuming

Ankur-0429 pushed a commit to Ankur-0429/llvm-project that referenced this pull request Apr 2, 2025
… PERMQ operands are splittable (llvm#133900)

If the 512-bit unary shuffle is a concatenation of 128/256-bit subvectors then we're better off using a X86ISD::SHUF128 node so we can fold the concatenation into the shuffle as well.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants