X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FX86%2F2010-10-08-cmpxchg8b.ll;h=ee50cb13e63449bed91df859f05ee4bee7b3eb79;hb=cd5ba15e764080210f3ae95d2a20d7f9c90d1bfc;hp=0fd4a34862c64daf6fdb4570a8d8f5c2cbf1a19d;hpb=1a2cf3b4d9c6cac6123417aaa4aae3a9e4f7bb48;p=oota-llvm.git diff --git a/test/CodeGen/X86/2010-10-08-cmpxchg8b.ll b/test/CodeGen/X86/2010-10-08-cmpxchg8b.ll index 0fd4a34862c..ee50cb13e63 100644 --- a/test/CodeGen/X86/2010-10-08-cmpxchg8b.ll +++ b/test/CodeGen/X86/2010-10-08-cmpxchg8b.ll @@ -1,5 +1,5 @@ ; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin | FileCheck %s -; bug 8297 +; PR8297 ; ; On i386, i64 cmpxchg is lowered during legalize types to extract the ; 64-bit result into a pair of fixed regs. So creation of the DAG node @@ -16,13 +16,11 @@ define void @foo(i64* %ptr) nounwind inlinehint { entry: br label %loop loop: -; CHECK: lock -; CHECK-NEXT: cmpxchg8b - %r = call i64 @llvm.atomic.cmp.swap.i64.p0i64(i64* %ptr, i64 0, i64 1) +; CHECK: lock cmpxchg8b + %pair = cmpxchg i64* %ptr, i64 0, i64 1 monotonic monotonic + %r = extractvalue { i64, i1 } %pair, 0 %stored1 = icmp eq i64 %r, 0 br i1 %stored1, label %loop, label %continue continue: ret void } - -declare i64 @llvm.atomic.cmp.swap.i64.p0i64(i64* nocapture, i64, i64) nounwind