diff options
| author | Michael Liao <michael.liao@intel.com> | 2012-11-12 06:49:17 +0000 |
|---|---|---|
| committer | Michael Liao <michael.liao@intel.com> | 2012-11-12 06:49:17 +0000 |
| commit | d39c0fb19f26f9e6047bb68952aad1a413103497 (patch) | |
| tree | f649a79ae78f9a2ed9cd11e3b5ebf604b19d5700 /llvm/test/CodeGen | |
| parent | 887b485dbe3dec6fb0387cf80c0e79f02bc7201d (diff) | |
| download | bcm5719-llvm-d39c0fb19f26f9e6047bb68952aad1a413103497.tar.gz bcm5719-llvm-d39c0fb19f26f9e6047bb68952aad1a413103497.zip | |
Fix PR14314
- Fix operand order for atomic sub, where the minuend is the value
loaded from memory and the subtrahend is the parameter specified.
llvm-svn: 167718
Diffstat (limited to 'llvm/test/CodeGen')
| -rw-r--r-- | llvm/test/CodeGen/X86/2010-01-08-Atomic64Bug.ll | 8 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/pr14314.ll | 13 |
2 files changed, 17 insertions, 4 deletions
diff --git a/llvm/test/CodeGen/X86/2010-01-08-Atomic64Bug.ll b/llvm/test/CodeGen/X86/2010-01-08-Atomic64Bug.ll index 7d1cda35a20..3d058bc2896 100644 --- a/llvm/test/CodeGen/X86/2010-01-08-Atomic64Bug.ll +++ b/llvm/test/CodeGen/X86/2010-01-08-Atomic64Bug.ll @@ -10,10 +10,10 @@ entry: ; CHECK: movl ([[REG:%[a-z]+]]), %eax ; CHECK: movl 4([[REG]]), %edx ; CHECK: LBB0_1: -; CHECK: movl $1 -; CHECK: addl -; CHECK: movl $0 -; CHECK: adcl +; CHECK: movl %eax, %ebx +; CHECK: addl {{%[a-z]+}}, %ebx +; CHECK: movl %edx, %ecx +; CHECK: adcl {{%[a-z]+}}, %ecx ; CHECK: lock ; CHECK-NEXT: cmpxchg8b ([[REG]]) ; CHECK-NEXT: jne diff --git a/llvm/test/CodeGen/X86/pr14314.ll b/llvm/test/CodeGen/X86/pr14314.ll new file mode 100644 index 00000000000..5388a4b01b6 --- /dev/null +++ b/llvm/test/CodeGen/X86/pr14314.ll @@ -0,0 +1,13 @@ +; RUN: llc < %s -mtriple=i386-pc-linux -mcpu=corei7 | FileCheck %s + +define i64 @atomicSub(i64* %a, i64 %b) nounwind { +entry: + %0 = atomicrmw sub i64* %a, i64 %b seq_cst + ret i64 %0 +; CHECK: atomicSub +; movl %eax, %ebx +; subl {{%[a-z]+}}, %ebx +; movl %edx, %ecx +; sbbl {{%[a-z]+}}, %ecx +; CHECK: ret +} |

