diff options
author | Nabeel Omer <me@nabeelomer.me> | 2023-03-13 16:08:42 +0000 |
---|---|---|
committer | Tobias Hieta <tobias@hieta.se> | 2023-03-23 15:33:42 +0100 |
commit | ba22382d514b0d3f1e5ce8fdba3e6b6cb7e6b4c3 (patch) | |
tree | 5a7898eb172924279fdfe69633e7747f6de5e8e2 | |
parent | 2861fa247395312baad6a4628a9066190b7d0e55 (diff) | |
download | llvm-ba22382d514b0d3f1e5ce8fdba3e6b6cb7e6b4c3.tar.gz |
[X86] Add negative test for D145930
This patch adds a negative test for the issue discovered in D145930.
Differential Revision: https://reviews.llvm.org/D145933
(cherry picked from commit d8c2a10297f19b708ed0dae8d0fe8415a0f8e5e8)
-rw-r--r-- | llvm/test/CodeGen/X86/pr61384.ll | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/pr61384.ll b/llvm/test/CodeGen/X86/pr61384.ll new file mode 100644 index 000000000000..cf17b3d4b73a --- /dev/null +++ b/llvm/test/CodeGen/X86/pr61384.ll @@ -0,0 +1,19 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=x86_64-unknown-linux-gnu -show-mc-encoding < %s | FileCheck %s + +@a = external dso_local global { { i64 } } + +define i32 @atomic_global() nounwind { +; CHECK-LABEL: atomic_global: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0] +; CHECK-NEXT: lock btsq %rax, a(%rip) # encoding: [0xf0,0x48,0x0f,0xab,0x05,A,A,A,A] +; CHECK-NEXT: # fixup A - offset: 5, value: a-5, kind: reloc_riprel_4byte +; CHECK-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0] +; CHECK-NEXT: retq # encoding: [0xc3] +entry: + %shl.i = shl i64 1, 0 + %0 = atomicrmw or ptr @a, i64 %shl.i monotonic, align 8 + %and.i = and i64 %shl.i, %0 + ret i32 0 +} |