Recent addition of v*cond* patterns for MMXMODEI modes allows 64bit MMX
modes to enter ix86_expand_sse_cmp. ix86_use_mask_cmp_p was not prepared
to reject mode sizes < 16, resulting in ICE due to unavailability of 64bit
masked PCOM instructions.
2021-05-07 Uroš Bizjak <ubizjak@gmail.com>
gcc/
PR target/100445
* config/i386/i386-expand.c (ix86_use_mask_cmp_p):
Return false for mode sizes < 16.
gcc/testsuite/
PR target/100445
* gcc.target/i386/pr100445-1.c: New test.
ix86_use_mask_cmp_p (machine_mode mode, machine_mode cmp_mode,
rtx op_true, rtx op_false)
{
- if (GET_MODE_SIZE (mode) == 64)
+ int vector_size = GET_MODE_SIZE (mode);
+
+ if (vector_size < 16)
+ return false;
+ else if (vector_size == 64)
return true;
/* When op_true is NULL, op_false must be NULL, or vice versa. */
--- /dev/null
+/* PR target/100445 */
+/* { dg-do compile } */
+/* { dg-options "-O3 -mavx512vl" } */
+
+#include "pr96827.c"