[llvm] [IR][AtomicExpand][NVPTX] Add elementwise modifier to atomicrmw; implement ISEL for NVPTX (PR #188393)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 24 19:05:49 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 132659 tests passed
* 3030 tests skipped
* 8 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.CodeGen/AArch64/atomicrmw-xchg-fp.ll</summary>
```
Exit Code: 2
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -verify-machineinstrs -mtriple=aarch64-- -O1 -fast-isel=0 -global-isel=false C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\atomicrmw-xchg-fp.ll -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\atomicrmw-xchg-fp.ll -check-prefix=NOLSE
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -verify-machineinstrs -mtriple=aarch64-- -O1 -fast-isel=0 -global-isel=false 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\atomicrmw-xchg-fp.ll' -o -
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\atomicrmw-xchg-fp.ll' -check-prefix=NOLSE
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -verify-machineinstrs -mtriple=aarch64-- -mattr=+lse -O1 -fast-isel=0 -global-isel=false C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\atomicrmw-xchg-fp.ll -o - | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\atomicrmw-xchg-fp.ll -check-prefix=LSE
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -verify-machineinstrs -mtriple=aarch64-- -mattr=+lse -O1 -fast-isel=0 -global-isel=false 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\atomicrmw-xchg-fp.ll' -o -
# .---command stderr------------
# | Assertion failed: (TLI.getTypeAction(*DAG.getContext(), Op.getValueType()) == TargetLowering::TypeLegal || Op.getOpcode() == ISD::TargetConstant || Op.getOpcode() == ISD::Register) && "Unexpected illegal type!", file C:\_work\llvm-project\llvm-project\llvm\lib\CodeGen\SelectionDAG\LegalizeDAG.cpp, line 1002
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
# | Stack dump:
# | 0. Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\llc.exe -verify-machineinstrs -mtriple=aarch64-- -mattr=+lse -O1 -fast-isel=0 -global-isel=false C:\\_work\\llvm-project\\llvm-project\\llvm\\test\\CodeGen\\AArch64\\atomicrmw-xchg-fp.ll -o -
# | 1. Running pass 'Function Pass Manager' on module 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\atomicrmw-xchg-fp.ll'.
# | 2. Running pass 'AArch64 Instruction Selection' on function '@test_rmw_xchg_f16'
# | Exception Code: 0xC000001D
# | #0 0x00007ff7e84d5706 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x2d35706)
# | #1 0x00007ffef376bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
# | #2 0x00007ffef376cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
# | #3 0x00007ffef376e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1)
# | #4 0x00007ffef376e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1)
# | #5 0x00007ff7e869f220 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x2eff220)
# | #6 0x00007ff7e869ee58 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x2efee58)
# | #7 0x00007ff7e5e5476c (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x6b476c)
# | #8 0x00007ff7e5e52bc0 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x6b2bc0)
# | #9 0x00007ff7e5e52186 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x6b2186)
# | #10 0x00007ff7e5e4e07a (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x6ae07a)
# | #11 0x00007ff7e5e4b124 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x6ab124)
# | #12 0x00007ff7e61f4e93 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0xa54e93)
# | #13 0x00007ff7e5c5f219 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4bf219)
# | #14 0x00007ff7e5c67cad (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4c7cad)
# | #15 0x00007ff7e5c5fe98 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4bfe98)
# | #16 0x00007ff7e57a73e2 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x73e2)
# | #17 0x00007ff7e9fd93a0 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x48393a0)
# | #18 0x00007ffef8c64cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
# | #19 0x00007fff056fedcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb)
# `-----------------------------
# error: command failed with exit status: 0xc000001d
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\atomicrmw-xchg-fp.ll' -check-prefix=LSE
# .---command stderr------------
# | FileCheck error: '<stdin>' is empty.
# | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\atomicrmw-xchg-fp.ll -check-prefix=LSE
# `-----------------------------
# error: command failed with exit status: 2
--
```
</details>
<details>
<summary>LLVM.CodeGen/AMDGPU/idemponent-atomics.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX942 C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX942 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll:9:16: error: GFX942-NEXT: expected string not found in input
# | ; GFX942-NEXT: global_load_dword v0, v[0:1], off sc1
# | ^
# | <stdin>:9:41: note: scanning from here
# | s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | ^
# | <stdin>:11:2: note: possible intended match here
# | global_atomic_or v0, v[0:1], v2, off sc0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll:25:16: error: GFX942-NEXT: expected string not found in input
# | ; GFX942-NEXT: global_load_dword v0, v[0:1], off sc1
# | ^
# | <stdin>:42:41: note: scanning from here
# | s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | ^
# | <stdin>:44:2: note: possible intended match here
# | global_atomic_or v0, v[0:1], v2, off sc0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll:159:16: error: GFX942-NEXT: expected string not found in input
# | ; GFX942-NEXT: global_load_dword v0, v[0:1], off sc0
# | ^
# | <stdin>:289:41: note: scanning from here
# | s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | ^
# | <stdin>:291:2: note: possible intended match here
# | global_atomic_add v0, v[0:1], v2, off sc0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll:175:16: error: GFX942-NEXT: expected string not found in input
# | ; GFX942-NEXT: global_load_dword v0, v[0:1], off sc0
# | ^
# | <stdin>:322:41: note: scanning from here
# | s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | ^
# | <stdin>:324:2: note: possible intended match here
# | global_atomic_add v0, v[0:1], v2, off sc0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll:191:16: error: GFX942-NEXT: expected string not found in input
# | ; GFX942-NEXT: global_load_dword v0, v[0:1], off
# | ^
# | <stdin>:355:41: note: scanning from here
# | s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | ^
# | <stdin>:357:2: note: possible intended match here
# | global_atomic_sub v0, v[0:1], v2, off sc0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll:207:16: error: GFX942-NEXT: expected string not found in input
# | ; GFX942-NEXT: global_load_dword v0, v[0:1], off
# | ^
# | <stdin>:388:41: note: scanning from here
# | s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | ^
# | <stdin>:390:2: note: possible intended match here
# | global_atomic_sub v0, v[0:1], v2, off sc0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll:239:16: error: GFX942-NEXT: expected string not found in input
# | ; GFX942-NEXT: global_load_dword v0, v[0:1], off sc0 sc1
# | ^
# | <stdin>:453:41: note: scanning from here
# | s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | ^
# | <stdin>:455:2: note: possible intended match here
# | global_atomic_xor v0, v[0:1], v2, off sc0 sc1
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll:255:16: error: GFX942-NEXT: expected string not found in input
# | ; GFX942-NEXT: global_load_dword v0, v[0:1], off
# | ^
# | <stdin>:486:41: note: scanning from here
# | s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | ^
# | <stdin>:488:2: note: possible intended match here
# | global_atomic_and v0, v[0:1], v2, off sc0
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll:271:16: error: GFX942-NEXT: expected string not found in input
# | ; GFX942-NEXT: global_load_dword v0, v[0:1], off
# | ^
# | <stdin>:519:41: note: scanning from here
# | s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | ^
# | <stdin>:521:2: note: possible intended match here
# | global_atomic_and v0, v[0:1], v2, off sc0
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\idemponent-atomics.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: .amdgcn_target "amdgcn-amd-amdhsa--gfx942"
# | 2: .amdhsa_code_object_version 6
# | 3: .text
# | 4: .globl global_agent_monotonic_idempotent_or ; -- Begin function global_agent_monotonic_idempotent_or
# | 5: .p2align 6
# | 6: .type global_agent_monotonic_idempotent_or, at function
# | 7: global_agent_monotonic_idempotent_or: ; @global_agent_monotonic_idempotent_or
# | 8: ; %bb.0: ; %entry
# | 9: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | next:9'0 X error: no match found
# | 10: v_mov_b32_e32 v2, 0
# | next:9'0 ~~~~~~~~~~~~~~~~~~~~~
# | 11: global_atomic_or v0, v[0:1], v2, off sc0
# | next:9'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:9'1 ? possible intended match
# | 12: s_waitcnt vmcnt(0)
# | next:9'0 ~~~~~~~~~~~~~~~~~~~~
# | 13: s_setpc_b64 s[30:31]
# | next:9'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 14: .Lfunc_end0:
# | next:9'0 ~~~~~~~~~~~~~
# | 15: .size global_agent_monotonic_idempotent_or, .Lfunc_end0-global_agent_monotonic_idempotent_or
# | next:9'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 16: ; -- End function
# | next:9'0 ~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 37: .globl global_agent_acquire_idempotent_or ; -- Begin function global_agent_acquire_idempotent_or
# | next:9'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 38: .p2align 6
# | next:9'0 ~~~~~~~~~~~~
# | 39: .type global_agent_acquire_idempotent_or, at function
# | next:9'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 40: global_agent_acquire_idempotent_or: ; @global_agent_acquire_idempotent_or
# | next:9'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 41: ; %bb.0: ; %entry
# | 42: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | next:25'0 X error: no match found
# | 43: v_mov_b32_e32 v2, 0
# | next:25'0 ~~~~~~~~~~~~~~~~~~~~~
# | 44: global_atomic_or v0, v[0:1], v2, off sc0
# | next:25'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:25'1 ? possible intended match
# | 45: s_waitcnt vmcnt(0)
# | next:25'0 ~~~~~~~~~~~~~~~~~~~~
# | 46: buffer_inv sc1
# | next:25'0 ~~~~~~~~~~~~~~~~
# | 47: s_setpc_b64 s[30:31]
# | next:25'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 48: .Lfunc_end1:
# | next:25'0 ~~~~~~~~~~~~~
# | 49: .size global_agent_acquire_idempotent_or, .Lfunc_end1-global_agent_acquire_idempotent_or
# | next:25'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 284: .globl global_agent_monotonic_idempotent_add ; -- Begin function global_agent_monotonic_idempotent_add
# | 285: .p2align 6
# | 286: .type global_agent_monotonic_idempotent_add, at function
# | 287: global_agent_monotonic_idempotent_add: ; @global_agent_monotonic_idempotent_add
# | 288: ; %bb.0: ; %entry
# | 289: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | next:159'0 X error: no match found
# | 290: v_mov_b32_e32 v2, 0
# | next:159'0 ~~~~~~~~~~~~~~~~~~~~~
# | 291: global_atomic_add v0, v[0:1], v2, off sc0
# | next:159'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:159'1 ? possible intended match
# | 292: s_waitcnt vmcnt(0)
# | next:159'0 ~~~~~~~~~~~~~~~~~~~~
# | 293: s_setpc_b64 s[30:31]
# | next:159'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 294: .Lfunc_end8:
# | next:159'0 ~~~~~~~~~~~~~
# | 295: .size global_agent_monotonic_idempotent_add, .Lfunc_end8-global_agent_monotonic_idempotent_add
# | next:159'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 296: ; -- End function
# | next:159'0 ~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 317: .globl global_agent_monotonic_idempotent_add__no_fine_grained ; -- Begin function global_agent_monotonic_idempotent_add__no_fine_grained
# | next:159'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 318: .p2align 6
# | next:159'0 ~~~~~~~~~~~~
# | 319: .type global_agent_monotonic_idempotent_add__no_fine_grained, at function
# | next:159'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 320: global_agent_monotonic_idempotent_add__no_fine_grained: ; @global_agent_monotonic_idempotent_add__no_fine_grained
# | next:159'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 321: ; %bb.0: ; %entry
# | 322: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | next:175'0 X error: no match found
# | 323: v_mov_b32_e32 v2, 0
# | next:175'0 ~~~~~~~~~~~~~~~~~~~~~
# | 324: global_atomic_add v0, v[0:1], v2, off sc0
# | next:175'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:175'1 ? possible intended match
# | 325: s_waitcnt vmcnt(0)
# | next:175'0 ~~~~~~~~~~~~~~~~~~~~
# | 326: s_setpc_b64 s[30:31]
# | next:175'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 327: .Lfunc_end9:
# | next:175'0 ~~~~~~~~~~~~~
# | 328: .size global_agent_monotonic_idempotent_add__no_fine_grained, .Lfunc_end9-global_agent_monotonic_idempotent_add__no_fine_grained
# | next:175'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 329: ; -- End function
# | next:175'0 ~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 350: .globl global_agent_monotonic_idempotent_sub ; -- Begin function global_agent_monotonic_idempotent_sub
# | next:175'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 351: .p2align 6
# | next:175'0 ~~~~~~~~~~~~
# | 352: .type global_agent_monotonic_idempotent_sub, at function
# | next:175'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 353: global_agent_monotonic_idempotent_sub: ; @global_agent_monotonic_idempotent_sub
# | next:175'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 354: ; %bb.0: ; %entry
# | 355: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | next:191'0 X error: no match found
# | 356: v_mov_b32_e32 v2, 0
# | next:191'0 ~~~~~~~~~~~~~~~~~~~~~
# | 357: global_atomic_sub v0, v[0:1], v2, off sc0
# | next:191'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:191'1 ? possible intended match
# | 358: s_waitcnt vmcnt(0)
# | next:191'0 ~~~~~~~~~~~~~~~~~~~~
# | 359: s_setpc_b64 s[30:31]
# | next:191'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 360: .Lfunc_end10:
# | next:191'0 ~~~~~~~~~~~~~~
# | 361: .size global_agent_monotonic_idempotent_sub, .Lfunc_end10-global_agent_monotonic_idempotent_sub
# | next:191'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 362: ; -- End function
# | next:191'0 ~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 383: .globl global_agent_monotonic_idempotent_sub__no_fine_grained ; -- Begin function global_agent_monotonic_idempotent_sub__no_fine_grained
# | next:191'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 384: .p2align 6
# | next:191'0 ~~~~~~~~~~~~
# | 385: .type global_agent_monotonic_idempotent_sub__no_fine_grained, at function
# | next:191'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 386: global_agent_monotonic_idempotent_sub__no_fine_grained: ; @global_agent_monotonic_idempotent_sub__no_fine_grained
# | next:191'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 387: ; %bb.0: ; %entry
# | 388: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | next:207'0 X error: no match found
# | 389: v_mov_b32_e32 v2, 0
# | next:207'0 ~~~~~~~~~~~~~~~~~~~~~
# | 390: global_atomic_sub v0, v[0:1], v2, off sc0
# | next:207'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:207'1 ? possible intended match
# | 391: s_waitcnt vmcnt(0)
# | next:207'0 ~~~~~~~~~~~~~~~~~~~~
# | 392: s_setpc_b64 s[30:31]
# | next:207'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 393: .Lfunc_end11:
# | next:207'0 ~~~~~~~~~~~~~~
# | 394: .size global_agent_monotonic_idempotent_sub__no_fine_grained, .Lfunc_end11-global_agent_monotonic_idempotent_sub__no_fine_grained
# | next:207'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 395: ; -- End function
# | next:207'0 ~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 448: .globl global_system_monotonic_idempotent_xor__no_fine_grained ; -- Begin function global_system_monotonic_idempotent_xor__no_fine_grained
# | 449: .p2align 6
# | 450: .type global_system_monotonic_idempotent_xor__no_fine_grained, at function
# | 451: global_system_monotonic_idempotent_xor__no_fine_grained: ; @global_system_monotonic_idempotent_xor__no_fine_grained
# | 452: ; %bb.0: ; %entry
# | 453: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | next:239'0 X error: no match found
# | 454: v_mov_b32_e32 v2, 0
# | next:239'0 ~~~~~~~~~~~~~~~~~~~~~
# | 455: global_atomic_xor v0, v[0:1], v2, off sc0 sc1
# | next:239'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:239'1 ? possible intended match
# | 456: s_waitcnt vmcnt(0)
# | next:239'0 ~~~~~~~~~~~~~~~~~~~~
# | 457: s_setpc_b64 s[30:31]
# | next:239'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 458: .Lfunc_end13:
# | next:239'0 ~~~~~~~~~~~~~~
# | 459: .size global_system_monotonic_idempotent_xor__no_fine_grained, .Lfunc_end13-global_system_monotonic_idempotent_xor__no_fine_grained
# | next:239'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 460: ; -- End function
# | next:239'0 ~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 481: .globl global_agent_monotonic_idempotent_and ; -- Begin function global_agent_monotonic_idempotent_and
# | next:239'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 482: .p2align 6
# | next:239'0 ~~~~~~~~~~~~
# | 483: .type global_agent_monotonic_idempotent_and, at function
# | next:239'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 484: global_agent_monotonic_idempotent_and: ; @global_agent_monotonic_idempotent_and
# | next:239'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 485: ; %bb.0: ; %entry
# | 486: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | next:255'0 X error: no match found
# | 487: v_mov_b32_e32 v2, -1
# | next:255'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 488: global_atomic_and v0, v[0:1], v2, off sc0
# | next:255'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:255'1 ? possible intended match
# | 489: s_waitcnt vmcnt(0)
# | next:255'0 ~~~~~~~~~~~~~~~~~~~~
# | 490: s_setpc_b64 s[30:31]
# | next:255'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 491: .Lfunc_end14:
# | next:255'0 ~~~~~~~~~~~~~~
# | 492: .size global_agent_monotonic_idempotent_and, .Lfunc_end14-global_agent_monotonic_idempotent_and
# | next:255'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 493: ; -- End function
# | next:255'0 ~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 514: .globl global_agent_monotonic_idempotent_and_no_fined_grain ; -- Begin function global_agent_monotonic_idempotent_and_no_fined_grain
# | next:255'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 515: .p2align 6
# | next:255'0 ~~~~~~~~~~~~
# | 516: .type global_agent_monotonic_idempotent_and_no_fined_grain, at function
# | next:255'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 517: global_agent_monotonic_idempotent_and_no_fined_grain: ; @global_agent_monotonic_idempotent_and_no_fined_grain
# | next:255'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 518: ; %bb.0: ; %entry
# | 519: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
# | next:271'0 X error: no match found
# | 520: v_mov_b32_e32 v2, -1
# | next:271'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 521: global_atomic_and v0, v[0:1], v2, off sc0
# | next:271'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:271'1 ? possible intended match
# | 522: s_waitcnt vmcnt(0)
# | next:271'0 ~~~~~~~~~~~~~~~~~~~~
# | 523: s_setpc_b64 s[30:31]
# | next:271'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 524: .Lfunc_end15:
# | next:271'0 ~~~~~~~~~~~~~~
# | 525: .size global_agent_monotonic_idempotent_and_no_fined_grain, .Lfunc_end15-global_agent_monotonic_idempotent_and_no_fined_grain
# | next:271'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 526: ; -- End function
# | next:271'0 ~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.CodeGen/X86/atomic-idempotent-syncscope.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent-syncscope.ll -mtriple=x86_64-- -verify-machineinstrs | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent-syncscope.ll --check-prefix=X64
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=x86_64-- -verify-machineinstrs
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent-syncscope.ll' --check-prefix=X64
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent-syncscope.ll:17:13: error: X64-NEXT: expected string not found in input
# | ; X64-NEXT: #MEMBARRIER
# | ^
# | <stdin>:8:9: note: scanning from here
# | # %bb.0:
# | ^
# | <stdin>:11:2: note: possible intended match here
# | # kill: def $al killed $al killed $eax
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent-syncscope.ll:101:13: error: X64-NEXT: expected string not found in input
# | ; X64-NEXT: #MEMBARRIER
# | ^
# | <stdin>:42:9: note: scanning from here
# | # %bb.0:
# | ^
# | <stdin>:48:2: note: possible intended match here
# | # -- End function
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent-syncscope.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: .att_syntax
# | 2: .file "<stdin>"
# | 3: .text
# | 4: .globl add8 # -- Begin function add8
# | 5: .p2align 4
# | 6: .type add8, at function
# | 7: add8: # @add8
# | 8: # %bb.0:
# | next:17'0 X error: no match found
# | 9: xorl %eax, %eax
# | next:17'0 ~~~~~~~~~~~~~~~~~
# | 10: lock xaddb %al, (%rdi)
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 11: # kill: def $al killed $al killed $eax
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:17'1 ? possible intended match
# | 12: retq
# | next:17'0 ~~~~~~
# | 13: .Lfunc_end0:
# | next:17'0 ~~~~~~~~~~~~~
# | 14: .size add8, .Lfunc_end0-add8
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: # -- End function
# | next:17'0 ~~~~~~~~~~~~~~~~~~~
# | 16: .globl or16 # -- Begin function or16
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 37: # -- End function
# | 38: .globl sub64 # -- Begin function sub64
# | 39: .p2align 4
# | 40: .type sub64, at function
# | 41: sub64: # @sub64
# | 42: # %bb.0:
# | next:101'0 X error: no match found
# | 43: xorl %eax, %eax
# | next:101'0 ~~~~~~~~~~~~~~~~~
# | 44: lock xaddq %rax, (%rdi)
# | next:101'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 45: retq
# | next:101'0 ~~~~~~
# | 46: .Lfunc_end3:
# | next:101'0 ~~~~~~~~~~~~~
# | 47: .size sub64, .Lfunc_end3-sub64
# | next:101'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 48: # -- End function
# | next:101'0 ~~~~~~~~~~~~~~~~~~~
# | next:101'1 ? possible intended match
# | 49: .globl or128 # -- Begin function or128
# | next:101'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 50: .p2align 4
# | next:101'0 ~~~~~~~~~~~~
# | 51: .type or128, at function
# | next:101'0 ~~~~~~~~~~~~~~~~~~~~~~~
# | 52: or128: # @or128
# | next:101'0 ~~~~~~
# | 53: # %bb.0:
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.CodeGen/X86/atomic-idempotent.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent.ll -mtriple=x86_64-- -verify-machineinstrs | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent.ll --check-prefix=X64
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=x86_64-- -verify-machineinstrs
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent.ll' --check-prefix=X64
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent.ll:17:13: error: X64-NEXT: expected string not found in input
# | ; X64-NEXT: lock orl $0, -{{[0-9]+}}(%rsp)
# | ^
# | <stdin>:8:9: note: scanning from here
# | # %bb.0:
# | ^
# | <stdin>:10:2: note: possible intended match here
# | lock xaddb %al, (%rdi)
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent.ll:116:13: error: X64-NEXT: expected string not found in input
# | ; X64-NEXT: lock orl $0, -{{[0-9]+}}(%rsp)
# | ^
# | <stdin>:42:9: note: scanning from here
# | # %bb.0:
# | ^
# | <stdin>:44:2: note: possible intended match here
# | lock xaddq %rax, (%rdi)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-idempotent.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: .att_syntax
# | 2: .file "<stdin>"
# | 3: .text
# | 4: .globl add8 # -- Begin function add8
# | 5: .p2align 4
# | 6: .type add8, at function
# | 7: add8: # @add8
# | 8: # %bb.0:
# | next:17'0 X error: no match found
# | 9: xorl %eax, %eax
# | next:17'0 ~~~~~~~~~~~~~~~~~
# | 10: lock xaddb %al, (%rdi)
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | next:17'1 ? possible intended match
# | 11: # kill: def $al killed $al killed $eax
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 12: retq
# | next:17'0 ~~~~~~
# | 13: .Lfunc_end0:
# | next:17'0 ~~~~~~~~~~~~~
# | 14: .size add8, .Lfunc_end0-add8
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: # -- End function
# | next:17'0 ~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 37: # -- End function
# | 38: .globl sub64 # -- Begin function sub64
# | 39: .p2align 4
# | 40: .type sub64, at function
# | 41: sub64: # @sub64
# | 42: # %bb.0:
# | next:116'0 X error: no match found
# | 43: xorl %eax, %eax
# | next:116'0 ~~~~~~~~~~~~~~~~~
# | 44: lock xaddq %rax, (%rdi)
# | next:116'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:116'1 ? possible intended match
# | 45: retq
# | next:116'0 ~~~~~~
# | 46: .Lfunc_end3:
# | next:116'0 ~~~~~~~~~~~~~
# | 47: .size sub64, .Lfunc_end3-sub64
# | next:116'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 48: # -- End function
# | next:116'0 ~~~~~~~~~~~~~~~~~~~
# | 49: .globl or128 # -- Begin function or128
# | next:116'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.CodeGen/X86/atomic-non-integer.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-non-integer.ll -mtriple=i386-linux-generic -verify-machineinstrs -mattr=sse | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-non-integer.ll --check-prefixes=X86,X86-SSE1
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=i386-linux-generic -verify-machineinstrs -mattr=sse
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-non-integer.ll' --check-prefixes=X86,X86-SSE1
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-non-integer.ll:358:18: error: X86-SSE1-NEXT: expected string not found in input
# | ; X86-SSE1-NEXT: pushl %eax
# | ^
# | <stdin>:120:9: note: scanning from here
# | # %bb.0:
# | ^
# | <stdin>:123:13: note: possible intended match here
# | movl 12(%esp), %eax
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\atomic-non-integer.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 115: .globl exchange_float # -- Begin function exchange_float
# | 116: .p2align 4
# | 117: .type exchange_float, at function
# | 118: exchange_float: # @exchange_float
# | 119: .cfi_startproc
# | 120: # %bb.0:
# | next:358'0 X error: no match found
# | 121: subl $8, %esp
# | next:358'0 ~~~~~~~~~~~~~~~
# | 122: .cfi_def_cfa_offset 12
# | next:358'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 123: movl 12(%esp), %eax
# | next:358'0 ~~~~~~~~~~~~~~~~~~~~~
# | next:358'1 ? possible intended match
# | 124: movss 16(%esp), %xmm0 # xmm0 = mem[0],zero,zero,zero
# | next:358'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 125: movss %xmm0, (%esp)
# | next:358'0 ~~~~~~~~~~~~~~~~~~~~~
# | 126: movl (%esp), %ecx
# | next:358'0 ~~~~~~~~~~~~~~~~~~~
# | 127: xchgl %ecx, (%eax)
# | next:358'0 ~~~~~~~~~~~~~~~~~~~~
# | 128: movl %ecx, 4(%esp)
# | next:358'0 ~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.CodeGen/X86/mfence.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\mfence.ll -mtriple=i386-unknown-unknown -mattr=+sse2 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\mfence.ll --check-prefixes=CHECK,X86
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=i386-unknown-unknown -mattr=+sse2
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\mfence.ll' --check-prefixes=CHECK,X86
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\mfence.ll:24:13: error: X86-NEXT: expected string not found in input
# | ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
# | ^
# | <stdin>:21:9: note: scanning from here
# | # %bb.0:
# | ^
# | <stdin>:22:2: note: possible intended match here
# | movl 4(%esp), %ecx
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\X86\mfence.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 16: .globl fence # -- Begin function fence
# | 17: .p2align 4
# | 18: .type fence, at function
# | 19: fence: # @fence
# | 20: .cfi_startproc
# | 21: # %bb.0:
# | next:24'0 X error: no match found
# | 22: movl 4(%esp), %ecx
# | next:24'0 ~~~~~~~~~~~~~~~~~~~~
# | next:24'1 ? possible intended match
# | 23: xorl %eax, %eax
# | next:24'0 ~~~~~~~~~~~~~~~~~
# | 24: lock xaddl %eax, (%ecx)
# | next:24'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 25: retl
# | next:24'0 ~~~~~~
# | 26: .Lfunc_end1:
# | next:24'0 ~~~~~~~~~~~~~
# | 27: .size fence, .Lfunc_end1-fence
# | next:24'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Transforms/AtomicExpand/AArch64/expand-atomicrmw-xchg-fp.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -codegen-opt-level=1 -S -mtriple=aarch64-- -passes='require<libcall-lowering-info>,atomic-expand' C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -codegen-opt-level=1 -S -mtriple=aarch64-- '-passes=require<libcall-lowering-info>,atomic-expand' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll'
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -codegen-opt-level=1 -S -mtriple=aarch64-- -mattr=+outline-atomics -passes='require<libcall-lowering-info>,atomic-expand' C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll --check-prefix=OUTLINE-ATOMICS
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -codegen-opt-level=1 -S -mtriple=aarch64-- -mattr=+outline-atomics '-passes=require<libcall-lowering-info>,atomic-expand' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll' --check-prefix=OUTLINE-ATOMICS
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll:21:25: error: OUTLINE-ATOMICS-NEXT: expected string not found in input
# | ; OUTLINE-ATOMICS-NEXT: [[TMP1:%.*]] = bitcast half [[VAL:%.*]] to i16
# | ^
# | <stdin>:6:30: note: scanning from here
# | define void @atomic_swap_f16(ptr %ptr, half %val) #0 !prof !0 {
# | ^
# | <stdin>:7:15: note: possible intended match here
# | %t1 = atomicrmw xchg ptr %ptr, half %val acquire, align 2
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll:46:25: error: OUTLINE-ATOMICS-NEXT: expected string not found in input
# | ; OUTLINE-ATOMICS-NEXT: [[TMP1:%.*]] = bitcast float [[VAL:%.*]] to i32
# | ^
# | <stdin>:12:30: note: scanning from here
# | define void @atomic_swap_f32(ptr %ptr, float %val) #1 !prof !0 {
# | ^
# | <stdin>:13:15: note: possible intended match here
# | %t1 = atomicrmw xchg ptr %ptr, float %val acquire, align 4
# | ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll:69:25: error: OUTLINE-ATOMICS-NEXT: expected string not found in input
# | ; OUTLINE-ATOMICS-NEXT: [[TMP1:%.*]] = bitcast double [[VAL:%.*]] to i64
# | ^
# | <stdin>:18:30: note: scanning from here
# | define void @atomic_swap_f64(ptr %ptr, double %val) #1 !prof !0 {
# | ^
# | <stdin>:19:15: note: possible intended match here
# | %t1 = atomicrmw xchg ptr %ptr, double %val acquire, align 8
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: ; ModuleID = 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\AtomicExpand\AArch64\expand-atomicrmw-xchg-fp.ll'
# | 2: source_filename = "C:\\_work\\llvm-project\\llvm-project\\llvm\\test\\Transforms\\AtomicExpand\\AArch64\\expand-atomicrmw-xchg-fp.ll"
# | 3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
# | 4: target triple = "aarch64-unknown-unknown"
# | 5:
# | 6: define void @atomic_swap_f16(ptr %ptr, half %val) #0 !prof !0 {
# | next:21'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 7: %t1 = atomicrmw xchg ptr %ptr, half %val acquire, align 2
# | next:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:21'1 ? possible intended match
# | 8: ret void
# | next:21'0 ~~~~~~~~~~
# | 9: }
# | next:21'0 ~~
# | 10:
# | next:21'0 ~
# | 11: ; Function Attrs: nounwind
# | next:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 12: define void @atomic_swap_f32(ptr %ptr, float %val) #1 !prof !0 {
# | next:21'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:46'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 13: %t1 = atomicrmw xchg ptr %ptr, float %val acquire, align 4
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:46'1 ? possible intended match
# | 14: ret void
# | next:46'0 ~~~~~~~~~~
# | 15: }
# | next:46'0 ~~
# | 16:
# | next:46'0 ~
# | 17: ; Function Attrs: nounwind
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: define void @atomic_swap_f64(ptr %ptr, double %val) #1 !prof !0 {
# | next:46'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:69'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 19: %t1 = atomicrmw xchg ptr %ptr, double %val acquire, align 8
# | next:69'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:69'1 ? possible intended match
# | 20: ret void
# | next:69'0 ~~~~~~~~~~
# | 21: }
# | next:69'0 ~~
# | 22:
# | next:69'0 ~
# | 23: attributes #0 = { "target-features"="+outline-atomics" }
# | next:69'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 24: attributes #1 = { nounwind "target-features"="+outline-atomics" }
# | next:69'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
### LLVM-Unit
<details>
<summary>LLVM-Unit.IR/_/IRTests_exe/VerifierTest/AtomicRMW</summary>
```
Script:
--
C:\_work\llvm-project\llvm-project\build\unittests\IR\.\IRTests.exe --gtest_filter=VerifierTest.AtomicRMW
--
C:\_work\llvm-project\llvm-project\llvm\unittests\IR\VerifierTest.cpp:381
Value of: verifyFunction(*F, &ErrorOS)
Actual: false
Expected: true
C:\_work\llvm-project\llvm-project\llvm\unittests\IR\VerifierTest.cpp:384
Value of: StringRef(Error).starts_with( "atomicrmw fadd operand must have floating-point or " "fixed vector of floating-point type!")
Actual: false
Expected: true
```
</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/188393
More information about the llvm-commits
mailing list