(eq:VI124_128
(match_operand:VI124_128 1 "vector_operand" "%0,x")
(match_operand:VI124_128 2 "vector_operand" "xBm,xm")))]
- "TARGET_SSE2 && !TARGET_XOP
+ "TARGET_SSE2
&& !(MEM_P (operands[1]) && MEM_P (operands[2]))"
"@
pcmpeq<ssemodesuffix>\t{%2, %0|%0, %2}
(gt:VI124_128
(match_operand:VI124_128 1 "register_operand" "0,x")
(match_operand:VI124_128 2 "vector_operand" "xBm,xm")))]
- "TARGET_SSE2 && !TARGET_XOP"
+ "TARGET_SSE2"
"@
pcmpgt<ssemodesuffix>\t{%2, %0|%0, %2}
vpcmpgt<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
--- /dev/null
+/* PR target/98833 */
+/* { dg-do compile } */
+/* { dg-options "-mavx512vl -O2 -mxop" } */
+
+int __attribute__((__vector_size__(4 * sizeof(int)))) * f5_p;
+int __attribute__((__vector_size__(4 * sizeof(int)))) * f6_p;
+
+void f5() { *f5_p = 0 == *f5_p; }
+void f6() { *f5_p = *f6_p > *f5_p; }
mask = -1;
start:
- t = __builtin_ia32_pcmpeqb128(data, repl_nl);
- t |= __builtin_ia32_pcmpeqb128(data, repl_cr);
- t |= __builtin_ia32_pcmpeqb128(data, repl_bs);
- t |= __builtin_ia32_pcmpeqb128(data, repl_qm);
+ t = data == repl_nl;
+ t |= data == repl_cr;
+ t |= data == repl_bs;
+ t |= data == repl_qm;
found = __builtin_ia32_pmovmskb128 (t);
found &= mask;
}