[LLVMbugs] [Bug 15340] Missed select threading case
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Sun Feb 24 07:40:27 PST 2013
http://llvm.org/bugs/show_bug.cgi?id=15340
Benjamin Kramer <benny.kra at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #2 from Benjamin Kramer <benny.kra at gmail.com> ---
With r175995 the cmov is gone:
define void @foo(i32* %x, i32* %y) #0 {
entry:
%cmp5 = icmp eq i32* %x, null
br i1 %cmp5, label %while.end, label %while.body
while.body: ; preds = %entry, %while.body
%x.addr.06 = phi i32* [ %call, %while.body ], [ %x, %entry ]
%call = tail call i32* @f(i32* %x.addr.06) #2
%cmp7 = icmp eq i32* %call, null
%not.cmp1 = icmp eq i32* %call, %y
%cmp = or i1 %cmp7, %not.cmp1
br i1 %cmp, label %while.end, label %while.body
while.end: ; preds = %while.body, %entry
ret void
}
declare i32* @f(i32*) #1
define void @bar(i32* %x, i32* %y) #0 {
entry:
%cmp.old = icmp eq i32* %x, null
br i1 %cmp.old, label %while.end, label %while.body
while.body: ; preds = %entry, %while.body
%x.addr.0 = phi i32* [ %call, %while.body ], [ %x, %entry ]
%call = tail call i32* @f(i32* %x.addr.0) #2
%cmp1 = icmp ne i32* %call, %y
%cmp = icmp ne i32* %call, null
%or.cond = and i1 %cmp1, %cmp
br i1 %or.cond, label %while.body, label %while.end
while.end: ; preds = %while.body, %entry
ret void
}
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130224/d4c4eb54/attachment.html>
More information about the llvm-bugs
mailing list