<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Redundant computations should be optimized out"
href="https://bugs.llvm.org/show_bug.cgi?id=43657">43657</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Redundant computations should be optimized out
</td>
</tr>
<tr>
<th>Product</th>
<td>clang
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>enhancement
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>LLVM Codegen
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>zamazan4ik@tut.by
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org, neeilans@live.com, richard-llvm@metafoo.co.uk
</td>
</tr></table>
<p>
<div>
<pre>For the following code:
#include <vector>
int foo(std::vector<int> a, std::vector<int> b)
{
int res = 0;
if(a.size() == b.size())
{
res = a.size() - b.size();
}
return res;
}
clang(trunk) with -O3 generates:
foo(std::vector<int, std::allocator<int> >, std::vector<int,
std::allocator<int> >): # @foo(std::vector<int, std::allocator<int>
<span class="quote">>, std::vector<int, std::allocator<int> >)</span >
mov rcx, qword ptr [rdi + 8]
sub rcx, qword ptr [rdi]
sar rcx, 2
mov rdx, qword ptr [rsi + 8]
sub rdx, qword ptr [rsi]
sar rdx, 2
mov esi, ecx
sub esi, edx
xor eax, eax
cmp rcx, rdx
cmove eax, esi
ret
gcc(trunk) with -O3 generates:
foo(std::vector<int, std::allocator<int> >, std::vector<int,
std::allocator<int> >):
xor eax, eax
ret
Godbolt link: <a href="https://godbolt.org/z/s1cwUt">https://godbolt.org/z/s1cwUt</a></pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>