https://llvm.org/bugs/show_bug.cgi?id=25285
Bug ID: 25285 Summary: GVN removes assumes if there are multiple assumes for the same predicate in a loop Product: libraries Version: trunk Hardware: PC OS: Windows NT Status: NEW Severity: normal Priority: P Component: Scalar Optimizations Assignee: unassignedb...@nondot.org Reporter: michael.m.kuperst...@intel.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified Running GVN over the below test case results in both assumes being removed: define i32 @foo (i32 %val, i1 %k) { br label %next next: tail call void @llvm.assume(i1 %k) tail call void @llvm.assume(i1 %k) %ret = call i32 @do(i32 %val) %cont = call i1 @continue(i32 %ret) br i1 %cont, label %next, label %end end: ret i32 %ret } declare i1 @continue(i32) #0 declare i32 @do(i32) #0 declare void @llvm.assume(i1) #0 attributes #0 = { nounwind } This does not happen if there is only one assume in the "next" block, or if the block is not in a loop (e.g. the branch is an unconditional branch to "end") -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs