<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 - [x86] sub-optimal increments when optimizing for size"
href="https://bugs.llvm.org/show_bug.cgi?id=42998">42998</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>[x86] sub-optimal increments when optimizing for size
</td>
</tr>
<tr>
<th>Product</th>
<td>libraries
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</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>Backend: X86
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>spatel+llvm@rotateright.com
</td>
</tr>
<tr>
<th>CC</th>
<td>craig.topper@gmail.com, llvm-bugs@lists.llvm.org, llvm-dev@redking.me.uk, spatel+llvm@rotateright.com
</td>
</tr></table>
<p>
<div>
<pre>Forking this off from <a class="bz_bug_link
bz_status_NEW "
title="NEW - Load/store combine fails to merge complex address math"
href="show_bug.cgi?id=42986">bug 42986</a> - when optimizing for size, we don't recognize
inc/lea as the optimal code (the -O2 code would be better for all settings?).
<a href="https://godbolt.org/z/xhypd3">https://godbolt.org/z/xhypd3</a>
define i64 @imm1_Oz(i32 %x, i32 %y) minsize nounwind {
%x1 = add i32 %x, 1
%y1 = add i32 %y, 1
%x1z = zext i32 %x1 to i64
%y1z = zext i32 %y1 to i64
%r = add i64 %x1z, %y1z
ret i64 %r
}
define i64 @imm1_Os(i32 %x, i32 %y) optsize nounwind {
%x1 = add i32 %x, 1
%y1 = add i32 %y, 1
%x1z = zext i32 %x1 to i64
%y1z = zext i32 %y1 to i64
%r = add i64 %x1z, %y1z
ret i64 %r
}
define i64 @imm1_O2(i32 %x, i32 %y) nounwind {
%x1 = add i32 %x, 1
%y1 = add i32 %y, 1
%x1z = zext i32 %x1 to i64
%y1z = zext i32 %y1 to i64
%r = add i64 %x1z, %y1z
ret i64 %r
}
$ llc -o - imm1.ll
_imm1_Oz: ## @imm1_Oz
pushq $1
popq %rax
leal (%rdi,%rax), %ecx
addl %esi, %eax
addq %rcx, %rax
retq
_imm1_Os: ## @imm1_Os
movl $1, %eax
leal (%rdi,%rax), %ecx
addl %esi, %eax
addq %rcx, %rax
retq
_imm1_O2: ## @imm1_O2
leal 1(%rdi), %eax
incl %esi
addq %rsi, %rax
retq</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>