+2011-06-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
+ __builtin_ia32_pcmpestri128 instead of asm.
+
2012-06-04 Dimitrios Apostolou <jimis@gmx.net>
* line-map.c (linemap_enter_macro): Don't zero max_column_hint in
/* Check for unaligned input. */
if (si & 15)
{
+ v16qi sv;
+
if (__builtin_expect (end - s < 16, 0)
&& __builtin_expect ((si & 0xfff) > 0xff0, 0))
{
/* ??? The builtin doesn't understand that the PCMPESTRI read from
memory need not be aligned. */
- __asm ("%vpcmpestri $0, (%1), %2"
- : "=c"(index) : "r"(s), "x"(search), "a"(4), "d"(16));
+ sv = __builtin_ia32_loaddqu ((const char *) s);
+ index = __builtin_ia32_pcmpestri128 (search, 4, sv, 16, 0);
+
if (__builtin_expect (index < 16, 0))
goto found;