<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 - AArch64 fails to select the correct addp"
href="https://bugs.llvm.org/show_bug.cgi?id=40968">40968</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>AArch64 fails to select the correct addp
</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>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>Backend: AArch64
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>david.green@arm.com
</td>
</tr>
<tr>
<th>CC</th>
<td>arnaud.degrandmaison@arm.com, jpaquette@apple.com, llvm-bugs@lists.llvm.org, peter.smith@linaro.org, t.p.northover@gmail.com, Ties.Stuij@arm.com
</td>
</tr></table>
<p>
<div>
<pre>This code:
typedef __attribute__((neon_vector_type(2))) float float32x2_t;
int printf(const char *, ...);
static __inline__ __attribute__((__always_inline__, __nodebug__)) float32x2_t
vcreate_f32(unsigned long __p0) {
float32x2_t __ret;
__ret = (float32x2_t)(__p0);
return __ret;
}
int main() {
float32x2_t c;
float32x2_t d;
float32x2_t e;
c = vcreate_f32(0x3f69925b3e663ec8UL);
d = vcreate_f32(0x3f4375073f409923UL);
e = __builtin_neon_vpadd_v(d, c, 9);
float f = __builtin_neon_vget_lane_f32(e, 0);
printf("%g\n", f);
}
Should print ~1.51584. It seems to currently print "8.77658e+37".
This started to fail at -O0 (with global isel) after rL355344, but I think
that's just because it no longer falls back to isel. It appears to be selecting
ADDP (i32x2), not FADDP (f32x2).</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>