aboutsummaryrefslogtreecommitdiff
path: root/libcpp/lex.c
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2021-01-27 13:22:36 +0800
committerliuhongt <hongtao.liu@intel.com>2021-01-27 18:49:25 +0800
commit530b1d688761db46b33d26864d3a0684cc82e0f9 (patch)
treed0d2e1e249b32794afc43a4a229e90d849f3e850 /libcpp/lex.c
parent6cf43433750bbd2837c526e03283f126a6d2c6e6 (diff)
downloadgcc-530b1d688761db46b33d26864d3a0684cc82e0f9.zip
gcc-530b1d688761db46b33d26864d3a0684cc82e0f9.tar.gz
gcc-530b1d688761db46b33d26864d3a0684cc82e0f9.tar.bz2
Fix ICE for [PR target/98833].
And replace __builtin_ia32_pcmpeqb128 with operator == in libcpp. gcc/ChangeLog: PR target/98833 * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition. (*sse2_eq<mode>3): Ditto. gcc/testsuite/ChangeLog: PR target/98833 * gcc.target/i386/pr98833.c: New test. libcpp/ PR target/98833 * lex.c (search_line_sse2): Replace builtins with == operator.
Diffstat (limited to 'libcpp/lex.c')
-rw-r--r--libcpp/lex.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libcpp/lex.c b/libcpp/lex.c
index cba0b6c..6af1404 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -391,10 +391,10 @@ search_line_sse2 (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
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;
}