diff options
author | Michael Liao <michael.liao@intel.com> | 2012-09-25 18:08:13 +0000 |
---|---|---|
committer | Michael Liao <michael.liao@intel.com> | 2012-09-25 18:08:13 +0000 |
commit | e5e8f7656a3b37c4c0c7936f78fa2586f06fbb9a (patch) | |
tree | 88dda9f4ecc5686e3460f9564a82efcf17bea349 /test | |
parent | fe2d5f848764dff8f9ba734a5e2438ca1535890e (diff) |
Add missing i64 max/min/umax/umin on 32-bit target
- Turn on atomic6432.ll and add specific test case as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164616 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/X86/atomic-minmax-i6432.ll | 51 | ||||
-rw-r--r-- | test/CodeGen/X86/atomic6432.ll | 1 |
2 files changed, 51 insertions, 1 deletions
diff --git a/test/CodeGen/X86/atomic-minmax-i6432.ll b/test/CodeGen/X86/atomic-minmax-i6432.ll new file mode 100644 index 0000000000..01a926489b --- /dev/null +++ b/test/CodeGen/X86/atomic-minmax-i6432.ll @@ -0,0 +1,51 @@ +; RUN: llc -march=x86 -mattr=+cmov -mtriple=i386-pc-linux < %s | FileCheck %s +@sc64 = external global i64 + +define void @atomic_maxmin_i6432() { +; CHECK: atomic_maxmin_i6432 + %1 = atomicrmw max i64* @sc64, i64 5 acquire +; CHECK: [[LABEL:.LBB[0-9]+_[0-9]+]] +; CHECK: cmpl +; CHECK: setl +; CHECK: cmpl +; CHECK: setl +; CHECK: cmovne +; CHECK: cmovne +; CHECK: lock +; CHECK-NEXT: cmpxchg8b +; CHECK: jne [[LABEL]] + %2 = atomicrmw min i64* @sc64, i64 6 acquire +; CHECK: [[LABEL:.LBB[0-9]+_[0-9]+]] +; CHECK: cmpl +; CHECK: setg +; CHECK: cmpl +; CHECK: setg +; CHECK: cmovne +; CHECK: cmovne +; CHECK: lock +; CHECK-NEXT: cmpxchg8b +; CHECK: jne [[LABEL]] + %3 = atomicrmw umax i64* @sc64, i64 7 acquire +; CHECK: [[LABEL:.LBB[0-9]+_[0-9]+]] +; CHECK: cmpl +; CHECK: setb +; CHECK: cmpl +; CHECK: setb +; CHECK: cmovne +; CHECK: cmovne +; CHECK: lock +; CHECK-NEXT: cmpxchg8b +; CHECK: jne [[LABEL]] + %4 = atomicrmw umin i64* @sc64, i64 8 acquire +; CHECK: [[LABEL:.LBB[0-9]+_[0-9]+]] +; CHECK: cmpl +; CHECK: seta +; CHECK: cmpl +; CHECK: seta +; CHECK: cmovne +; CHECK: cmovne +; CHECK: lock +; CHECK-NEXT: cmpxchg8b +; CHECK: jne [[LABEL]] + ret void +} diff --git a/test/CodeGen/X86/atomic6432.ll b/test/CodeGen/X86/atomic6432.ll index 556c36ebfd..f9b21c5bc7 100644 --- a/test/CodeGen/X86/atomic6432.ll +++ b/test/CodeGen/X86/atomic6432.ll @@ -1,5 +1,4 @@ ; RUN: llc < %s -O0 -march=x86 -mcpu=corei7 | FileCheck %s --check-prefix X32 -; XFAIL: * @sc64 = external global i64 |