<html>
<head>
<base href="https://llvm.org/bugs/" />
</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 --- - signext of small integer return types ignored"
href="https://llvm.org/bugs/show_bug.cgi?id=31708">31708</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>signext of small integer return types ignored
</td>
</tr>
<tr>
<th>Product</th>
<td>new-bugs
</td>
</tr>
<tr>
<th>Version</th>
<td>3.9
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Windows NT
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>new bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>eric.schweitz@pgroup.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=17873" name="attach_17873" title="Small test file to show x86 signext i16 returns">attachment 17873</a> <a href="attachment.cgi?id=17873&action=edit" title="Small test file to show x86 signext i16 returns">[details]</a></span>
Small test file to show x86 signext i16 returns
In the attached .ll file is a small function that has a return type of "signext
i16". From the LLVM Language Reference, it seems that the value returned ought
to be sign extended to the word width (i32) of the target in this case.
Experimentation showed that sign extension was the case in 3.8.
movswl -2(%rsp), %eax
However, in 3.9 the sign extension changed to a zero extension.
movzwl -2(%rsp), %eax
This zero extension can be seen in my latest "master" branch build as well.
To reproduce:
llc -O1 -o bug.s bug.ll</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>