<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] After r361815, Assertion failed: (isSimple() && "Expected a SimpleValueType!"), function getSimpleVT, file include/llvm/CodeGen/ValueTypes.h, line 253."
href="https://bugs.llvm.org/show_bug.cgi?id=43916">43916</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>[X86] After r361815, Assertion failed: (isSimple() && "Expected a SimpleValueType!"), function getSimpleVT, file include/llvm/CodeGen/ValueTypes.h, line 253.
</td>
</tr>
<tr>
<th>Product</th>
<td>new-bugs
</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>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>dimitry@andric.com
</td>
</tr>
<tr>
<th>CC</th>
<td>htmldeveloper@gmail.com, llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>As reported in <a href="https://bugs.freebsd.org/241747">https://bugs.freebsd.org/241747</a>, building a recent version of
OpenSSL with clang 9.0.0 targeting sandybridge results in an assertion:
Assertion failed: (isSimple() && "Expected a SimpleValueType!"), function
getSimpleVT, file /usr/src/contrib/llvm/include/llvm/CodeGen/ValueTypes.h, line
253.
Stack dump:
0. Program arguments: clang -cc1 -triple x86_64-unknown-freebsd13.0
-emit-obj -mnoexecstack -disable-free -main-file-name ecp_nistp521.c
-mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim
-relaxed-aliasing -masm-verbose -mconstructor-aliases -munwind-tables
-fuse-init-array -target-cpu sandybridge -dwarf-column-info
-debugger-tuning=gdb -coverage-notes-file
/usr/ports/security/openssl111/work/openssl-1.1.1d/crypto/ec/ecp_nistp521.gcno
-D L_ENDIAN -D OPENSSL_PIC -D OPENSSL_CPUID_OBJ -D OPENSSL_IA32_SSE2 -D
OPENSSL_BN_ASM_MONT -D OPENSSL_BN_ASM_MONT5 -D OPENSSL_BN_ASM_GF2m -D SHA1_ASM
-D SHA256_ASM -D SHA512_ASM -D KECCAK1600_ASM -D RC4_ASM -D MD5_ASM -D
VPAES_ASM -D GHASH_ASM -D ECP_NISTZ256_ASM -D X25519_ASM -D POLY1305_ASM -D
OPENSSLDIR="/usr/local/openssl" -D ENGINESDIR="/usr/local/lib/engines-1.1" -D
_THREAD_SAFE -D _REENTRANT -D NDEBUG -O2 -ferror-limit 19 -fmessage-length 0
-pthread -stack-protector 2 -fobjc-runtime=gnustep -fdiagnostics-show-option
-fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -x c
ecp_nistp521-2ed9e6.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'ecp_nistp521-2ed9e6.c'.
4. Running pass 'X86 DAG->DAG Instruction Selection' on function
'@point_add'
Bisection shows this regressed with <a href="https://reviews.llvm.org/rL361815">https://reviews.llvm.org/rL361815</a> ("[x86]
fix 256-bit vector store splitting to honor 'volatile'") by Sanjay Patel.
Minimized test case:
// clang -cc1 -triple x86_64-- -S -target-cpu sandybridge -O1 -w -vectorize-slp
ecp_nistp521-min.c
a() {
b();
__uint128_t *c = b;
int *d = a;
c[0] += -d[0];
c[1] += -d[1];
}
It looks like it only asserts when CPUs are targeted which support AVX, but not
AVX2. E.g. -target-cpu core-avx2 works, while core-avx-i, corei7-avx and
sandybridge all assert.</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>