-- C Language Definition for Unix `highlight` Command, e.g.
-- sudo cp tool/emacs/c.lang /usr/share/highlight/langDefs/
-- { printf '<!doctype html>\n<meta charset="utf-8">\n'; highlight -Ohtml --encoding=utf-8 --class-name=NONE --src-lang=c tool/viz/life.c; } >life.c.html
-- .num { color: #000000; } /* number */
-- .esc { color: #80216b; } /* escape sequence */
-- .ipl { color: #008080; } /* string interpolation */
-- .str { color: #5a5127; } /* string */
-- .ppc { color: #685809; } /* preprocessor */
-- .pps { color: #273122; } /* preprocessor string */
-- .com { color: #0e6729; } /* multiline comment */
-- .slc { color: #0e6729; } /* single line comment */
-- .lin { color: #75715e; } /* wut */
-- .opt { color: #000000; } /* operator */
-- .kwa { color: #5332d8; } /* keyword */
-- .kwb { color: #8c1a94; } /* type */
-- .kwc { color: #6b2c75; } /* builtin */
-- .kwd { color: #9609a7; } /* constant */

Description="C"
Categories = {"source"}
Digits = [[ (?:0x|0X|0b)[0-9a-fA-F']+|\d*[\.]?\d+(?:[eE][\-\+]\d+)?[lLuU]* ]]

Keywords={

  { Id=1,
    List={
"case",
"do",
"return",
"struct",
"for",
"default",
"auto",
"while",
"else",
"break",
"union",
"switch",
"continue",
"extern",
"sizeof",
"if",
"goto",
"static",
"sizeof",
"if",
"typedef",
"const",
"struct",
"for",
"union",
"switch",
"volatile",
"do",
"return",
"goto",
"auto",
"enum",
"else",
"break",
"extern",
"case",
"default",
"register",
"while",
"continue",
"inline",
"restrict",
"_Imaginary",
"_Bool",
"_Pragma",
"_Complex",
"_Atomic",
"_Alignas",
"_Alignof",
"_Noreturn",
"_Generic",
"_Thread_local",
"_Static_assert",
"_Complex_I",
"_Imaginary_I",
"__inline",
"__msabi",
"offsetof",
"microarchitecture",
"targetclones",
"forcealignargpointer",
"textexit",
"externinline",
"dontinline",
"dontclone",
"donothing",
"printfesque",
"flattenout",
"mallocesque",
"vallocesque",
"paramsnonnull",
"returnspointerwithnoaliases",
"alignas",
"nosideeffect",
"decltype",
"forceinline",
"nocallersavedregisters",
"dontthrow",
"dontoptimize",
"optimizesize",
"optimizespeed",
"alignof",
"relegated",
"memcpyesque",
"libcesque",
"artificial",
"returnstwice",
"returnsaligned",
"noprune",
"reallocesque",
"nullterminated",
"unreachable",
"notpossible",
"_Hide",
"privileged",
"hasatleast",
"nodebuginfo",
"frownedupon",
"noreturn",
"initarray",
"mayalias",
"noinstrument",
"interruptfn",
"nocallback",
"textstartup",
"warnifused",
"attributeallocsize",
"attributeallocalign",
"dontdiscard",
"nointerpose",
"compatfn",
"returnsnonnull",
"strftimeesque",
"firstclass",
"preinitarray",
"scanfesque",
"pureconst",
"thatispacked",
"strlenesque",
"textwindows",
"aligned",
"typeof",
"textreal",
"autotype",
"_Section",
"_Vector_size",
"__thread",
"__alignof",
"__typeof",
"__restrict",
"__const__",
"__label__",
"__noinline__",
"__noclone__",
"__force_align_arg_pointer__",
"__always_inline__",
"__gnu_inline__",
"__alignof__",
"__asm__",
"__attribute__",
"__auto_type",
"__byte__",
"__complex__",
"__imag__",
"__may_alias__",
"__noreturn__",
"__packed__",
"__pointer__",
"__printf__",
"__real__",
"__restrict__",
"__scanf__",
"__strfmon__",
"__strftime__",
"__strong__",
"__target__",
"__transparent_union__",
"__typeof__",
"__volatile__",
"__word__",
"__alias__",
"__aligned__",
"__alloc_align__",
"__alloc_size__",
"__artificial__",
"__assume_aligned__",
"__cold__",
"__constructor__",
"__destructor__",
"__copy__",
"__deprecated__",
"__error__",
"__warning__",
"__externally_visible__",
"__flatten__",
"__format__",
"__gnu_format__",
"__gnu_printf__",
"__gnu_scanf__",
"__format_arg__",
"__hot__",
"__ifunc__",
"__interrupt__",
"__interrupt_handler__",
"__leaf__",
"__no_caller_saved_registers__",
"__malloc__",
"__no_icf__",
"__no_instrument_function__",
"__no_profile_instrument_function__",
"__no_reorder__",
"__no_sanitize__",
"__no_sanitize_address__",
"__no_address_safety_analysis__",
"__no_sanitize_thread__",
"__leaf__",
"__no_sanitize_undefined__",
"__no_split_stack__",
"__no_stack_limit__",
"__noclone__",
"__noipa__",
"__nonnull__",
"__noplt__",
"__nothrow__",
"__optimize__",
"__pure__",
"__patchable_function_entry__",
"__returns_nonnull__",
"__returns_twice__",
"__section__",
"__sentinel__",
"__simd__",
"__target_clones__",
"__unused__",
"__used__",
"__visibility__",
"__warn_unused_result__",
"__params_nonnull__",
"__weak__",
"__vector_size__",
"__ms_abi__",
"__mode__",
"__optnone__",
"__nodebug__",
-- "goto", "break", "return", "continue", "asm", "case", "default", "if", "else", "switch", "while", "for", "do", "sizeof",
-- "typeof", "stdcall", "const_cast", "delete", "dynamic_cast", "goto", "namespace", "new", "true", "false",
-- "reinterpret_cast", "static_cast", "this", "throw", "try", "catch", "using", "assert", "static_assert", "static",
-- "alignas","alignof","concept","consteval","constexpr","constinit","co_await","co_return","co_yield","decltype",
-- "noexcept","requires","thread_local",
-- "compl", "and_eq", "or_eq", "xor_eq", "not", "not_eq", "bitand", "and", "bitor", "or", "xor", "pascal", "cdecl",
    }
  },

  { Id=2,
    List= {
"void",
"int",
"long",
"short",
"char",
"signed",
"unsigned",
"float",
"double",
"size_t",
"wint_t",
"wchar_t",
"bool",
"_Bool",
"int32_t",
"uint_least64_t",
"intptr_t",
"uintmax_t",
"int_fast32_t",
"int16_t",
"int64_t",
"int_fast16_t",
"int_fast64_t",
"errno_t",
"uint_fast32_t",
"int_least8_t",
"uint_least16_t",
"char16_t",
"uint_least32_t",
"int_least64_t",
"int_least16_t",
"int_fast8_t",
"uint_least8_t",
"uintptr_t",
"ssize_t",
"int8_t",
"int_least32_t",
"uint8_t",
"uint_fast64_t",
"intmax_t",
"uint_fast16_t",
"uint32_t",
"ptrdiff_t",
"char32_t",
"uint64_t",
"uint16_t",
"uint_fast8_t",
"complex",
"atomic_uintptr_t",
"atomic_uchar",
"atomic_int_least32_t",
"atomic_uint_least64_t",
"atomic_int_fast32_t",
"atomic_uint_least16_t",
"atomic_short",
"atomic_size_t",
"atomic_uint",
"atomic_char16_t",
"atomic_ullong",
"atomic_uint_fast16_t",
"atomic_int_fast8_t",
"atomic_uint_least32_t",
"atomic_ptrdiff_t",
"atomic_uintmax_t",
"atomic_int_least16_t",
"atomic_long",
"atomic_int",
"atomic_int_fast16_t",
"atomic_uint_least8_t",
"atomic_ushort",
"atomic_int_least8_t",
"atomic_ulong",
"atomic_char32_t",
"atomic_schar",
"atomic_intmax_t",
"atomic_int_least64_t",
"atomic_uint_fast64_t",
"atomic_wchar_t",
"atomic_uint_fast8_t",
"atomic_int_fast64_t",
"atomic_llong",
"atomic_bool",
"atomic_intptr_t",
"atomic_uint_fast32_t",
"atomic_char",
"__int128",
"_Float16",
"_Complex",
"_Float16x",
"_Float32",
"_Float32x",
"_Float64",
"_Float64x",
"_Float128",
"_Float128x",
"int_least128_t",
"int_fast128_t",
"bool32",
"int128_t",
"uint128_t",
"axdx_t",
"__v8hu",
"__v16qi",
"__v4su",
"__v8su",
"__v16qu",
"__v16qs",
"__v8hi",
"__v4hi",
"__v2df",
"__v2di",
"__v4si",
"__v8si",
"__m1",
"__v2du",
"__m2",
"__v1di",
"__v4sf",
"__v8sf",
"__v2si",
"__m64",
"__v2sf",
"__v8qi",
"__v32qi",
"__m128",
"__m128d",
"__m128i",
"__m128_u",
"__m128d_u",
"__m128i_u",
"__m256",
"__m256d",
"__m256i",
"__m256_u",
"__m256d_u",
"__m256i_u",
-- "int", "long", "short", "char", "void", "signed", "unsigned", "float", "double", "size_t", "wchar_t",
-- "ptrdiff_t", "sig_atomic_t", "fpos_t", "clock_t", "time_t", "va_list", "jmp_buf", "FILE", "DIR", "div_t", "ldiv_t",
-- "mbstate_t", "wctrans_t", "wint_t", "wctype_t", "const", "bool", "complex", "struct", "union", "enum",
-- "int8_t", "int16_t", "int32_t", "int64_t", "uint8_t", "uint16_t", "uint32_t", "uint64_t", "int_least8_t", "int_least16_t",
-- "int_least32_t", "int_least64_t", "uint_least8_t", "uint_least16_t", "uint_least32_t", "uint_least64_t",
-- "int_fast8_t", "int_fast16_t", "int_fast32_t", "int_fast64_t", "uint_fast8_t", "uint_fast16_t", "uint_fast32_t",
-- "uint_fast64_t", "intptr_t", "uintptr_t", "intmax_t", "uintmax_t", "char8_t","char16_t","char32_t"
    }
  },

  { Id=3,
    List= {
"static_assert",
"__VA_OPT__",
"__COUNTER__",
"__SIG_ATOMIC_TYPE__",
"__INT8_TYPE__",
"__INT16_TYPE__",
"__INT32_TYPE__",
"__INT64_TYPE__",
"__UINT8_TYPE__",
"__UINT16_TYPE__",
"__UINT32_TYPE__",
"__UINT64_TYPE__",
"__INT_LEAST8_TYPE__",
"__INT_LEAST16_TYPE__",
"__INT_LEAST32_TYPE__",
"__INT_LEAST64_TYPE__",
"__UINT_LEAST8_TYPE__",
"__UINT_LEAST16_TYPE__",
"__UINT_LEAST32_TYPE__",
"__UINT_LEAST64_TYPE__",
"__INT_FAST8_TYPE__",
"__INT_FAST16_TYPE__",
"__INT_FAST32_TYPE__",
"__INT_FAST64_TYPE__",
"__UINT_FAST8_TYPE__",
"__UINT_FAST16_TYPE__",
"__UINT_FAST32_TYPE__",
"__UINT_FAST64_TYPE__",
"__INTPTR_TYPE__",
"__UINTPTR_TYPE__",
"__INT8_C",
"__INT16_C",
"__INT32_C",
"__INT64_C",
"__UINT8_C",
"__UINT16_C",
"__UINT32_C",
"__UINT64_C",
"__INTMAX_C",
"__UINTMAX_C",
"__TIMESTAMP__",
"__FP_FAST_FMA",
"__FP_FAST_FMAF",
"__FP_FAST_FMAL",
"__FP_FAST_FMAF16",
"__FP_FAST_FMAF32",
"__FP_FAST_FMAF64",
"__FP_FAST_FMAF128",
"__FP_FAST_FMAF32X",
"__FP_FAST_FMAF64X",
"__FP_FAST_FMAF128X",
"__builtin_va_list",
"__has_attribute",
"__has_builtin",
"__has_cpp_attribute",
"__builtin_va_arg",
"__builtin_va_copy",
"__builtin_va_start",
"__builtin_va_end",
"__builtin_abs",
"__builtin_strcpy",
"__builtin_stpcpy",
"__builtin_setjmp",
"__builtin_longjmp",
"__builtin_apply_args",
"__builtin_apply",
"__builtin_return",
"__builtin_va_arg_pack",
"__builtin_va_arg_pack_len",
"__builtin_constant_p",
"__builtin_return_address",
"__builtin_extract_return_addr",
"__builtin_frob_return_address",
"__builtin_frame_address",
"__builtin_shuffle",
"__builtin_convertvector",
"__builtin_offsetof",
"__builtin_add_overflow",
"__builtin_sadd_overflow",
"__builtin_saddl_overflow",
"__builtin_saddll_overflow",
"__builtin_uadd_overflow",
"__builtin_uaddl_overflow",
"__builtin_uaddll_overflow",
"__builtin_sub_overflow",
"__builtin_ssub_overflow",
"__builtin_ssubl_overflow",
"__builtin_ssubll_overflow",
"__builtin_usub_overflow",
"__builtin_usubl_overflow",
"__builtin_usubll_overflow",
"__builtin_mul_overflow",
"__builtin_smul_overflow",
"__builtin_smull_overflow",
"__builtin_smulll_overflow",
"__builtin_umul_overflow",
"__builtin_umull_overflow",
"__builtin_umulll_overflow",
"__builtin_add_overflow_p",
"__builtin_sub_overflow_p",
"__builtin_mul_overflow_p",
"__builtin_object_size",
"__builtin___memcpy_chk",
"__builtin___sprintf_chk",
"__builtin___snprintf_chk",
"__builtin___vsprintf_chk",
"__builtin___vsnprintf_chk",
"__builtin_alloca",
"__builtin_alloca_with_align",
"__builtin_alloc",
"__builtin_alloca_with_align_and_max",
"__builtin_has_attribute",
"__builtin_speculation_safe_value",
"__builtin_types_compatible_p",
"__builtin_call_with_static_chain",
"__builtin_choose_expr",
"__builtin_tgmath",
"__builtin_complex",
"__builtin_is_constant_evaluated",
"__builtin_expect",
"__builtin_trap",
"__builtin_unreachable",
"__builtin_assume_aligned",
"__builtin_LINE",
"__builtin_FUNCTION",
"__builtin_FILE",
"__builtin___clear_cache",
"__builtin_prefetch",
"__builtin_huge_val",
"__builtin_huge_valf",
"__builtin_huge_vall",
"__builtin_huge_valfn",
"__builtin_huge_valfnx",
"__builtin_fpclassify",
"__builtin_inf",
"__builtin_infd32",
"__builtin_infd64",
"__builtin_infd128",
"__builtin_inff",
"__builtin_infl",
"__builtin_inffn",
"__builtin_inffnx",
"__builtin_isnan",
"__builtin_signbit",
"__builtin_signbitf",
"__builtin_signbitl",
"__builtin_isfinite",
"__builtin_isinf",
"__builtin_isinfinite",
"__builtin_isnormal",
"__builtin_isinf_sign",
"__builtin_isgreater",
"__builtin_isgreaterequal",
"__builtin_isgreater",
"__builtin_isgreaterequal",
"__builtin_isless",
"__builtin_islessequal",
"__builtin_islessgreater",
"__builtin_isunordered",
"__builtin_nan",
"__builtin_nand32",
"__builtin_nand64",
"__builtin_nand128",
"__builtin_nanf",
"__builtin_nanl",
"__builtin_nanfn",
"__builtin_nanfnx",
"__builtin_nans",
"__builtin_nansf",
"__builtin_nansl",
"__builtin_nansfn",
"__builtin_nansfnx",
"__builtin_ffs",
"__builtin_clz",
"__builtin_ctz",
"__builtin_clrsb",
"__builtin_popcount",
"__builtin_parity",
"__builtin_ffsl",
"__builtin_clzl",
"__builtin_ctzl",
"__builtin_clrsbl",
"__builtin_popcountl",
"__builtin_parityl",
"__builtin_ffsll",
"__builtin_clzll",
"__builtin_ctzll",
"__builtin_clrsbll",
"__builtin_popcountll",
"__builtin_parityll",
"__builtin_powi",
"__builtin_powif",
"__builtin_powil",
"__builtin_bswap16",
"__builtin_bswap32",
"__builtin_bswap64",
"__builtin_extend_pointer",
"__builtin_goacc_parlevel_id",
"__builtin_goacc_parlevel_size",
"__builtin_fabsq",
"__builtin_copysignq",
"__builtin_infq",
"__builtin_huge_valq",
"__builtin_nanq",
"__builtin_nansq",
"__builtin_copysign",
"__builtin_copysignf",
"__builtin_copysignl",
"__builtin_fabs",
"__builtin_fabsf",
"__builtin_fabsl",
"__builtin_ceil",
"__builtin_ceilf",
"__builtin_ceill",
"__builtin_floor",
"__builtin_floorf",
"__builtin_floorl",
"__builtin_trunc",
"__builtin_truncf",
"__builtin_truncl",
"__builtin_round",
"__builtin_roundf",
"__builtin_roundl",
"__builtin_lround",
"__builtin_lroundf",
"__builtin_lroundl",
"__builtin_nearbyint",
"__builtin_nearbyintf",
"__builtin_nearbyintl",
"__builtin_scalbn",
"__builtin_scalbnf",
"__builtin_scalbnl",
"__builtin_logb",
"__builtin_logbf",
"__builtin_logbl",
"__builtin_fmax",
"__builtin_fmaxf",
"__builtin_fmaxl",
"__builtin_fmin",
"__builtin_fminf",
"__builtin_fminl",
"__builtin_rint",
"__builtin_rintf",
"__builtin_rintl",
"__builtin_lrint",
"__builtin_lrintf",
"__builtin_lrintl",
"__builtin_memcpy",
"__builtin_memcmp",
"__builtin_memset",
"__builtin_strlen",
"__atomic_load_n",
"__atomic_load",
"__atomic_store",
"__atomic_store_n",
"__atomic_exchange_n",
"__atomic_exchange",
"__atomic_compare_exchange_n",
"__atomic_compare_exchange",
"__atomic_add_fetch",
"__atomic_sub_fetch",
"__atomic_and_fetch",
"__atomic_xor_fetch",
"__atomic_or_fetch",
"__atomic_nand_fetch",
"__atomic_fetch_add",
"__atomic_fetch_sub",
"__atomic_fetch_and",
"__atomic_fetch_xor",
"__atomic_fetch_or",
"__atomic_fetch_nand",
"__atomic_test_and_set",
"__atomic_clear",
"__atomic_thread_fence",
"__atomic_signal_fence",
"__atomic_always_lock_free",
"__atomic_is_lock_free",
"__sync_fetch_and_add",
"__sync_fetch_and_sub",
"__sync_fetch_and_or",
"__sync_fetch_and_and",
"__sync_fetch_and_xor",
"__sync_fetch_and_nand",
"__sync_add_and_fetch",
"__sync_sub_and_fetch",
"__sync_or_and_fetch",
"__sync_and_and_fetch",
"__sync_xor_and_fetch",
"__sync_nand_and_fetch",
"__sync_bool_compare_and_swap",
"__sync_val_compare_and_swap",
"__sync_synchronize",
"__sync_lock_test_and_set",
"__sync_lock_release",
"__builtin_ia32_pause",
"__builtin_ia32_paddb",
"__builtin_ia32_paddw",
"__builtin_ia32_paddd",
"__builtin_ia32_psubb",
"__builtin_ia32_psubw",
"__builtin_ia32_psubd",
"__builtin_ia32_paddsb",
"__builtin_ia32_paddsw",
"__builtin_ia32_psubsb",
"__builtin_ia32_psubsw",
"__builtin_ia32_paddusb",
"__builtin_ia32_paddusw",
"__builtin_ia32_psubusb",
"__builtin_ia32_psubusw",
"__builtin_ia32_pmullw",
"__builtin_ia32_pmulhw",
"__builtin_ia32_pand",
"__builtin_ia32_pandn",
"__builtin_ia32_por",
"__builtin_ia32_pxor",
"__builtin_ia32_pcmpeqb",
"__builtin_ia32_pcmpeqw",
"__builtin_ia32_pcmpeqd",
"__builtin_ia32_pcmpgtb",
"__builtin_ia32_pcmpgtw",
"__builtin_ia32_pcmpgtd",
"__builtin_ia32_punpckhbw",
"__builtin_ia32_punpckhwd",
"__builtin_ia32_punpckhdq",
"__builtin_ia32_punpcklbw",
"__builtin_ia32_punpcklwd",
"__builtin_ia32_punpckldq",
"__builtin_ia32_packsswb",
"__builtin_ia32_packssdw",
"__builtin_ia32_packuswb",
"__builtin_ia32_psllw",
"__builtin_ia32_pslld",
"__builtin_ia32_psllq",
"__builtin_ia32_psrlw",
"__builtin_ia32_psrld",
"__builtin_ia32_psrlq",
"__builtin_ia32_psraw",
"__builtin_ia32_psrad",
"__builtin_ia32_psllwi",
"__builtin_ia32_pslldi",
"__builtin_ia32_psllqi",
"__builtin_ia32_psrlwi",
"__builtin_ia32_psrldi",
"__builtin_ia32_psrlqi",
"__builtin_ia32_psrawi",
"__builtin_ia32_psradi",
"__builtin_ia32_pmulhuw",
"__builtin_ia32_pavgb",
"__builtin_ia32_pavgw",
"__builtin_ia32_psadbw",
"__builtin_ia32_pmaxub",
"__builtin_ia32_pmaxsw",
"__builtin_ia32_pminub",
"__builtin_ia32_pminsw",
"__builtin_ia32_pmovmskb",
"__builtin_ia32_maskmovq",
"__builtin_ia32_movntq",
"__builtin_ia32_sfence",
"__builtin_ia32_comieq",
"__builtin_ia32_comineq",
"__builtin_ia32_comilt",
"__builtin_ia32_comile",
"__builtin_ia32_comigt",
"__builtin_ia32_comige",
"__builtin_ia32_ucomieq",
"__builtin_ia32_ucomineq",
"__builtin_ia32_ucomilt",
"__builtin_ia32_ucomile",
"__builtin_ia32_ucomigt",
"__builtin_ia32_ucomige",
"__builtin_ia32_addps",
"__builtin_ia32_subps",
"__builtin_ia32_mulps",
"__builtin_ia32_divps",
"__builtin_ia32_addss",
"__builtin_ia32_subss",
"__builtin_ia32_mulss",
"__builtin_ia32_divss",
"__builtin_ia32_cmpeqps",
"__builtin_ia32_cmpltps",
"__builtin_ia32_cmpleps",
"__builtin_ia32_cmpgtps",
"__builtin_ia32_cmpgeps",
"__builtin_ia32_cmpunordps",
"__builtin_ia32_cmpneqps",
"__builtin_ia32_cmpnltps",
"__builtin_ia32_cmpnleps",
"__builtin_ia32_cmpngtps",
"__builtin_ia32_cmpngeps",
"__builtin_ia32_cmpordps",
"__builtin_ia32_cmpeqss",
"__builtin_ia32_cmpltss",
"__builtin_ia32_cmpless",
"__builtin_ia32_cmpunordss",
"__builtin_ia32_cmpneqss",
"__builtin_ia32_cmpnltss",
"__builtin_ia32_cmpnless",
"__builtin_ia32_cmpordss",
"__builtin_ia32_maxps",
"__builtin_ia32_maxss",
"__builtin_ia32_minps",
"__builtin_ia32_minss",
"__builtin_ia32_andps",
"__builtin_ia32_andnps",
"__builtin_ia32_orps",
"__builtin_ia32_xorps",
"__builtin_ia32_movss",
"__builtin_ia32_movhlps",
"__builtin_ia32_movlhps",
"__builtin_ia32_unpckhps",
"__builtin_ia32_unpcklps",
"__builtin_ia32_cvtpi2ps",
"__builtin_ia32_cvtsi2ss",
"__builtin_ia32_cvtps2pi",
"__builtin_ia32_cvtss2si",
"__builtin_ia32_cvttps2pi",
"__builtin_ia32_cvttss2si",
"__builtin_ia32_rcpps",
"__builtin_ia32_rsqrtps",
"__builtin_ia32_sqrtps",
"__builtin_ia32_rcpss",
"__builtin_ia32_rsqrtss",
"__builtin_ia32_sqrtss",
"__builtin_ia32_shufps",
"__builtin_ia32_movntps",
"__builtin_ia32_movmskps",
"__builtin_ia32_loadups",
"__builtin_ia32_storeups",
"__builtin_ia32_loadss",
"__builtin_ia32_loadhps",
"__builtin_ia32_loadlps",
"__builtin_ia32_storehps",
"__builtin_ia32_storelps",
"__builtin_ia32_comisdeq",
"__builtin_ia32_comisdlt",
"__builtin_ia32_comisdle",
"__builtin_ia32_comisdgt",
"__builtin_ia32_comisdge",
"__builtin_ia32_comisdneq",
"__builtin_ia32_ucomisdeq",
"__builtin_ia32_ucomisdlt",
"__builtin_ia32_ucomisdle",
"__builtin_ia32_ucomisdgt",
"__builtin_ia32_ucomisdge",
"__builtin_ia32_ucomisdneq",
"__builtin_ia32_cmpeqpd",
"__builtin_ia32_cmpltpd",
"__builtin_ia32_cmplepd",
"__builtin_ia32_cmpgtpd",
"__builtin_ia32_cmpgepd",
"__builtin_ia32_cmpunordpd",
"__builtin_ia32_cmpneqpd",
"__builtin_ia32_cmpnltpd",
"__builtin_ia32_cmpnlepd",
"__builtin_ia32_cmpngtpd",
"__builtin_ia32_cmpngepd",
"__builtin_ia32_cmpordpd",
"__builtin_ia32_cmpeqsd",
"__builtin_ia32_cmpltsd",
"__builtin_ia32_cmplesd",
"__builtin_ia32_cmpunordsd",
"__builtin_ia32_cmpneqsd",
"__builtin_ia32_cmpnltsd",
"__builtin_ia32_cmpnlesd",
"__builtin_ia32_cmpordsd",
"__builtin_ia32_paddq",
"__builtin_ia32_psubq",
"__builtin_ia32_addpd",
"__builtin_ia32_subpd",
"__builtin_ia32_mulpd",
"__builtin_ia32_divpd",
"__builtin_ia32_addsd",
"__builtin_ia32_subsd",
"__builtin_ia32_mulsd",
"__builtin_ia32_divsd",
"__builtin_ia32_minpd",
"__builtin_ia32_maxpd",
"__builtin_ia32_minsd",
"__builtin_ia32_maxsd",
"__builtin_ia32_andpd",
"__builtin_ia32_andnpd",
"__builtin_ia32_orpd",
"__builtin_ia32_xorpd",
"__builtin_ia32_movsd",
"__builtin_ia32_unpckhpd",
"__builtin_ia32_unpcklpd",
"__builtin_ia32_paddb128",
"__builtin_ia32_paddw128",
"__builtin_ia32_paddd128",
"__builtin_ia32_paddq128",
"__builtin_ia32_psubb128",
"__builtin_ia32_psubw128",
"__builtin_ia32_psubd128",
"__builtin_ia32_psubq128",
"__builtin_ia32_pmullw128",
"__builtin_ia32_pmulhw128",
"__builtin_ia32_pand128",
"__builtin_ia32_pandn128",
"__builtin_ia32_por128",
"__builtin_ia32_pxor128",
"__builtin_ia32_pavgb128",
"__builtin_ia32_pavgw128",
"__builtin_ia32_pcmpeqb128",
"__builtin_ia32_pcmpeqw128",
"__builtin_ia32_pcmpeqd128",
"__builtin_ia32_pcmpgtb128",
"__builtin_ia32_pcmpgtw128",
"__builtin_ia32_pcmpgtd128",
"__builtin_ia32_pmaxub128",
"__builtin_ia32_pmaxsw128",
"__builtin_ia32_pminub128",
"__builtin_ia32_pminsw128",
"__builtin_ia32_punpckhbw128",
"__builtin_ia32_punpckhwd128",
"__builtin_ia32_punpckhdq128",
"__builtin_ia32_punpckhqdq128",
"__builtin_ia32_punpcklbw128",
"__builtin_ia32_punpcklwd128",
"__builtin_ia32_punpckldq128",
"__builtin_ia32_punpcklqdq128",
"__builtin_ia32_packsswb128",
"__builtin_ia32_packssdw128",
"__builtin_ia32_packuswb128",
"__builtin_ia32_pmulhuw128",
"__builtin_ia32_maskmovdqu",
"__builtin_ia32_loadupd",
"__builtin_ia32_storeupd",
"__builtin_ia32_loadhpd",
"__builtin_ia32_loadlpd",
"__builtin_ia32_movmskpd",
"__builtin_ia32_pmovmskb128",
"__builtin_ia32_movnti",
"__builtin_ia32_movnti64",
"__builtin_ia32_movntpd",
"__builtin_ia32_movntdq",
"__builtin_ia32_pshufd",
"__builtin_ia32_pshuflw",
"__builtin_ia32_pshufhw",
"__builtin_ia32_psadbw128",
"__builtin_ia32_sqrtpd",
"__builtin_ia32_sqrtsd",
"__builtin_ia32_shufpd",
"__builtin_ia32_cvtdq2pd",
"__builtin_ia32_cvtdq2ps",
"__builtin_ia32_cvtpd2dq",
"__builtin_ia32_cvtpd2pi",
"__builtin_ia32_cvtpd2ps",
"__builtin_ia32_cvttpd2dq",
"__builtin_ia32_cvttpd2pi",
"__builtin_ia32_cvtpi2pd",
"__builtin_ia32_cvtsd2si",
"__builtin_ia32_cvttsd2si",
"__builtin_ia32_cvtsd2si64",
"__builtin_ia32_cvttsd2si64",
"__builtin_ia32_cvtps2dq",
"__builtin_ia32_cvtps2pd",
"__builtin_ia32_cvttps2dq",
"__builtin_ia32_cvtsi2sd",
"__builtin_ia32_cvtsi642sd",
"__builtin_ia32_cvtsd2ss",
"__builtin_ia32_cvtss2sd",
"__builtin_ia32_clflush",
"__builtin_ia32_lfence",
"__builtin_ia32_mfence",
"__builtin_ia32_loaddqu",
"__builtin_ia32_storedqu",
"__builtin_ia32_pmuludq",
"__builtin_ia32_pmuludq128",
"__builtin_ia32_psllw128",
"__builtin_ia32_pslld128",
"__builtin_ia32_psllq128",
"__builtin_ia32_psrlw128",
"__builtin_ia32_psrld128",
"__builtin_ia32_psrlq128",
"__builtin_ia32_psraw128",
"__builtin_ia32_psrad128",
"__builtin_ia32_pslldqi128",
"__builtin_ia32_psllwi128",
"__builtin_ia32_pslldi128",
"__builtin_ia32_psllqi128",
"__builtin_ia32_psrldqi128",
"__builtin_ia32_psrlwi128",
"__builtin_ia32_psrldi128",
"__builtin_ia32_psrlqi128",
"__builtin_ia32_psrawi128",
"__builtin_ia32_psradi128",
"__builtin_ia32_pmaddwd128",
"__builtin_ia32_movq128",
"__builtin_ia32_addsubpd",
"__builtin_ia32_addsubps",
"__builtin_ia32_haddpd",
"__builtin_ia32_haddps",
"__builtin_ia32_hsubpd",
"__builtin_ia32_hsubps",
"__builtin_ia32_lddqu",
"__builtin_ia32_monitor",
"__builtin_ia32_movshdup",
"__builtin_ia32_movsldup",
"__builtin_ia32_mwait",
"__builtin_ia32_phaddd",
"__builtin_ia32_phaddw",
"__builtin_ia32_phaddsw",
"__builtin_ia32_phsubd",
"__builtin_ia32_phsubw",
"__builtin_ia32_phsubsw",
"__builtin_ia32_pmaddubsw",
"__builtin_ia32_pmulhrsw",
"__builtin_ia32_pshufb",
"__builtin_ia32_psignb",
"__builtin_ia32_psignd",
"__builtin_ia32_psignw",
"__builtin_ia32_palignr",
"__builtin_ia32_pabsb",
"__builtin_ia32_pabsd",
"__builtin_ia32_pabsw",
"__builtin_ia32_phaddd128",
"__builtin_ia32_phaddw128",
"__builtin_ia32_phaddsw128",
"__builtin_ia32_phsubd128",
"__builtin_ia32_phsubw128",
"__builtin_ia32_phsubsw128",
"__builtin_ia32_pmaddubsw128",
"__builtin_ia32_pmulhrsw128",
"__builtin_ia32_pshufb128",
"__builtin_ia32_psignb128",
"__builtin_ia32_psignd128",
"__builtin_ia32_psignw128",
"__builtin_ia32_palignr128",
"__builtin_ia32_pabsb128",
"__builtin_ia32_pabsd128",
"__builtin_ia32_pabsw128",
"__builtin_ia32_blendpd",
"__builtin_ia32_blendps",
"__builtin_ia32_blendvpd",
"__builtin_ia32_blendvps",
"__builtin_ia32_dppd",
"__builtin_ia32_dpps",
"__builtin_ia32_insertps128",
"__builtin_ia32_movntdqa",
"__builtin_ia32_mpsadbw128",
"__builtin_ia32_packusdw128",
"__builtin_ia32_pblendvb128",
"__builtin_ia32_pblendw128",
"__builtin_ia32_pcmpeqq",
"__builtin_ia32_phminposuw128",
"__builtin_ia32_pmaxsb128",
"__builtin_ia32_pmaxsd128",
"__builtin_ia32_pmaxud128",
"__builtin_ia32_pmaxuw128",
"__builtin_ia32_pminsb128",
"__builtin_ia32_pminsd128",
"__builtin_ia32_pminud128",
"__builtin_ia32_pminuw128",
"__builtin_ia32_pmovsxbd128",
"__builtin_ia32_pmovsxbq128",
"__builtin_ia32_pmovsxbw128",
"__builtin_ia32_pmovsxdq128",
"__builtin_ia32_pmovsxwd128",
"__builtin_ia32_pmovsxwq128",
"__builtin_ia32_pmovzxbd128",
"__builtin_ia32_pmovzxbq128",
"__builtin_ia32_pmovzxbw128",
"__builtin_ia32_pmovzxdq128",
"__builtin_ia32_pmovzxwd128",
"__builtin_ia32_pmovzxwq128",
"__builtin_ia32_pmuldq128",
"__builtin_ia32_pmulld128",
"__builtin_ia32_ptestc128",
"__builtin_ia32_ptestnzc128",
"__builtin_ia32_ptestz128",
"__builtin_ia32_roundpd",
"__builtin_ia32_roundps",
"__builtin_ia32_roundsd",
"__builtin_ia32_roundss",
"__builtin_ia32_vec_set_v4sf",
"__builtin_ia32_vec_ext_v16qi",
"__builtin_ia32_vec_set_v16qi",
"__builtin_ia32_vec_set_v4si",
"__builtin_ia32_vec_set_v2di",
"__builtin_ia32_vec_ext_v4sf",
"__builtin_ia32_vec_ext_v4si",
"__builtin_ia32_vec_ext_v2di",
"__builtin_ia32_pcmpestrm128",
"__builtin_ia32_pcmpestri128",
"__builtin_ia32_pcmpestria128",
"__builtin_ia32_pcmpestric128",
"__builtin_ia32_pcmpestrio128",
"__builtin_ia32_pcmpestris128",
"__builtin_ia32_pcmpestriz128",
"__builtin_ia32_pcmpistrm128",
"__builtin_ia32_pcmpistri128",
"__builtin_ia32_pcmpistria128",
"__builtin_ia32_pcmpistric128",
"__builtin_ia32_pcmpistrio128",
"__builtin_ia32_pcmpistris128",
"__builtin_ia32_pcmpistriz128",
"__builtin_ia32_pcmpgtq",
"__builtin_ia32_crc32qi",
"__builtin_ia32_crc32hi",
"__builtin_ia32_crc32si",
"__builtin_ia32_crc32di",
"__builtin_ia32_addpd256",
"__builtin_ia32_addps256",
"__builtin_ia32_addsubpd256",
"__builtin_ia32_addsubps256",
"__builtin_ia32_andnpd256",
"__builtin_ia32_andnps256",
"__builtin_ia32_andpd256",
"__builtin_ia32_andps256",
"__builtin_ia32_blendpd256",
"__builtin_ia32_blendps256",
"__builtin_ia32_blendvpd256",
"__builtin_ia32_blendvps256",
"__builtin_ia32_cmppd",
"__builtin_ia32_cmppd256",
"__builtin_ia32_cmpps",
"__builtin_ia32_cmpps256",
"__builtin_ia32_cmpsd",
"__builtin_ia32_cmpss",
"__builtin_ia32_cvtdq2pd256",
"__builtin_ia32_cvtdq2ps256",
"__builtin_ia32_cvtpd2dq256",
"__builtin_ia32_cvtpd2ps256",
"__builtin_ia32_cvtps2dq256",
"__builtin_ia32_cvtps2pd256",
"__builtin_ia32_cvttpd2dq256",
"__builtin_ia32_cvttps2dq256",
"__builtin_ia32_divpd256",
"__builtin_ia32_divps256",
"__builtin_ia32_dpps256",
"__builtin_ia32_haddpd256",
"__builtin_ia32_haddps256",
"__builtin_ia32_hsubpd256",
"__builtin_ia32_hsubps256",
"__builtin_ia32_lddqu256",
"__builtin_ia32_loaddqu256",
"__builtin_ia32_loadupd256",
"__builtin_ia32_loadups256",
"__builtin_ia32_maskloadpd",
"__builtin_ia32_maskloadpd256",
"__builtin_ia32_maskloadps",
"__builtin_ia32_maskloadps256",
"__builtin_ia32_maskstorepd",
"__builtin_ia32_maskstorepd256",
"__builtin_ia32_maskstoreps",
"__builtin_ia32_maskstoreps256",
"__builtin_ia32_maxpd256",
"__builtin_ia32_maxps256",
"__builtin_ia32_minpd256",
"__builtin_ia32_minps256",
"__builtin_ia32_movddup256",
"__builtin_ia32_movmskpd256",
"__builtin_ia32_movmskps256",
"__builtin_ia32_movshdup256",
"__builtin_ia32_movsldup256",
"__builtin_ia32_mulpd256",
"__builtin_ia32_mulps256",
"__builtin_ia32_orpd256",
"__builtin_ia32_orps256",
"__builtin_ia32_pd_pd256",
"__builtin_ia32_pd256_pd",
"__builtin_ia32_ps_ps256",
"__builtin_ia32_ps256_ps",
"__builtin_ia32_ptestc256",
"__builtin_ia32_ptestnzc256",
"__builtin_ia32_ptestz256",
"__builtin_ia32_rcpps256",
"__builtin_ia32_roundpd256",
"__builtin_ia32_roundps256",
"__builtin_ia32_rsqrtps_nr256",
"__builtin_ia32_rsqrtps256",
"__builtin_ia32_shufpd256",
"__builtin_ia32_shufps256",
"__builtin_ia32_si_si256",
"__builtin_ia32_si256_si",
"__builtin_ia32_sqrtpd256",
"__builtin_ia32_sqrtps_nr256",
"__builtin_ia32_sqrtps256",
"__builtin_ia32_storedqu256",
"__builtin_ia32_storeupd256",
"__builtin_ia32_storeups256",
"__builtin_ia32_subpd256",
"__builtin_ia32_subps256",
"__builtin_ia32_unpckhpd256",
"__builtin_ia32_unpckhps256",
"__builtin_ia32_unpcklpd256",
"__builtin_ia32_unpcklps256",
"__builtin_ia32_vbroadcastf128_pd256",
"__builtin_ia32_vbroadcastf128_ps256",
"__builtin_ia32_vbroadcastsd256",
"__builtin_ia32_vbroadcastss",
"__builtin_ia32_vbroadcastss256",
"__builtin_ia32_vextractf128_pd256",
"__builtin_ia32_vextractf128_ps256",
"__builtin_ia32_vextractf128_si256",
"__builtin_ia32_vinsertf128_pd256",
"__builtin_ia32_vinsertf128_ps256",
"__builtin_ia32_vinsertf128_si256",
"__builtin_ia32_vperm2f128_pd256",
"__builtin_ia32_vperm2f128_ps256",
"__builtin_ia32_vperm2f128_si256",
"__builtin_ia32_vpermil2pd",
"__builtin_ia32_vpermil2pd256",
"__builtin_ia32_vpermil2ps",
"__builtin_ia32_vpermil2ps256",
"__builtin_ia32_vpermilpd",
"__builtin_ia32_vpermilpd256",
"__builtin_ia32_vpermilps",
"__builtin_ia32_vpermilps256",
"__builtin_ia32_vpermilvarpd",
"__builtin_ia32_vpermilvarpd256",
"__builtin_ia32_vpermilvarps",
"__builtin_ia32_vpermilvarps256",
"__builtin_ia32_vtestcpd",
"__builtin_ia32_vtestcpd256",
"__builtin_ia32_vtestcps",
"__builtin_ia32_vtestcps256",
"__builtin_ia32_vtestnzcpd",
"__builtin_ia32_vtestnzcpd256",
"__builtin_ia32_vtestnzcps",
"__builtin_ia32_vtestnzcps256",
"__builtin_ia32_vtestzpd",
"__builtin_ia32_vtestzpd256",
"__builtin_ia32_vtestzps",
"__builtin_ia32_vtestzps256",
"__builtin_ia32_vzeroall",
"__builtin_ia32_vzeroupper",
"__builtin_ia32_xorpd256",
"__builtin_ia32_xorps256",
"__builtin_ia32_mpsadbw256",
"__builtin_ia32_pabsb256",
"__builtin_ia32_pabsw256",
"__builtin_ia32_pabsd256",
"__builtin_ia32_packssdw256",
"__builtin_ia32_packsswb256",
"__builtin_ia32_packusdw256",
"__builtin_ia32_packuswb256",
"__builtin_ia32_paddb256",
"__builtin_ia32_paddw256",
"__builtin_ia32_paddd256",
"__builtin_ia32_paddq256",
"__builtin_ia32_paddsb256",
"__builtin_ia32_paddsw256",
"__builtin_ia32_paddusb256",
"__builtin_ia32_paddusw256",
"__builtin_ia32_palignr256",
"__builtin_ia32_andsi256",
"__builtin_ia32_andnotsi256",
"__builtin_ia32_pavgb256",
"__builtin_ia32_pavgw256",
"__builtin_ia32_pblendvb256",
"__builtin_ia32_pblendw256",
"__builtin_ia32_pcmpeqb256",
"__builtin_ia32_pcmpeqw256",
"__builtin_ia32_pcmpeqd256",
"__builtin_ia32_pcmpeqq256",
"__builtin_ia32_pcmpgtb256",
"__builtin_ia32_pcmpgtw256",
"__builtin_ia32_pcmpgtd256",
"__builtin_ia32_pcmpgtq256",
"__builtin_ia32_phaddw256",
"__builtin_ia32_phaddd256",
"__builtin_ia32_phaddsw256",
"__builtin_ia32_phsubw256",
"__builtin_ia32_phsubd256",
"__builtin_ia32_phsubsw256",
"__builtin_ia32_pmaddubsw256",
"__builtin_ia32_pmaddwd256",
"__builtin_ia32_pmaxsb256",
"__builtin_ia32_pmaxsw256",
"__builtin_ia32_pmaxsd256",
"__builtin_ia32_pmaxub256",
"__builtin_ia32_pmaxuw256",
"__builtin_ia32_pmaxud256",
"__builtin_ia32_pminsb256",
"__builtin_ia32_pminsw256",
"__builtin_ia32_pminsd256",
"__builtin_ia32_pminub256",
"__builtin_ia32_pminuw256",
"__builtin_ia32_pminud256",
"__builtin_ia32_pmovmskb256",
"__builtin_ia32_pmovsxbw256",
"__builtin_ia32_pmovsxbd256",
"__builtin_ia32_pmovsxbq256",
"__builtin_ia32_pmovsxwd256",
"__builtin_ia32_pmovsxwq256",
"__builtin_ia32_pmovsxdq256",
"__builtin_ia32_pmovzxbw256",
"__builtin_ia32_pmovzxbd256",
"__builtin_ia32_pmovzxbq256",
"__builtin_ia32_pmovzxwd256",
"__builtin_ia32_pmovzxwq256",
"__builtin_ia32_pmovzxdq256",
"__builtin_ia32_pmuldq256",
"__builtin_ia32_pmulhrsw256",
"__builtin_ia32_pmulhuw256",
"__builtin_ia32_pmulhw256",
"__builtin_ia32_pmullw256",
"__builtin_ia32_pmulld256",
"__builtin_ia32_pmuludq256",
"__builtin_ia32_por256",
"__builtin_ia32_psadbw256",
"__builtin_ia32_pshufb256",
"__builtin_ia32_pshufd256",
"__builtin_ia32_pshufhw256",
"__builtin_ia32_pshuflw256",
"__builtin_ia32_psignb256",
"__builtin_ia32_psignw256",
"__builtin_ia32_psignd256",
"__builtin_ia32_pslldqi256",
"__builtin_ia32_psllwi256",
"__builtin_ia32_pslldi256",
"__builtin_ia32_psllqi256",
"__builtin_ia32_psrawi256",
"__builtin_ia32_psraw256",
"__builtin_ia32_psradi256",
"__builtin_ia32_psrad256",
"__builtin_ia32_psrldqi256",
"__builtin_ia32_psrlwi256",
"__builtin_ia32_psrlw256",
"__builtin_ia32_psrldi256",
"__builtin_ia32_psrld256",
"__builtin_ia32_psrlqi256",
"__builtin_ia32_psubb256",
"__builtin_ia32_psubw256",
"__builtin_ia32_psubd256",
"__builtin_ia32_psubq256",
"__builtin_ia32_psubsb256",
"__builtin_ia32_psubsw256",
"__builtin_ia32_psubusb256",
"__builtin_ia32_psubusw256",
"__builtin_ia32_punpckhbw256",
"__builtin_ia32_punpckhwd256",
"__builtin_ia32_punpckhdq256",
"__builtin_ia32_punpckhqdq256",
"__builtin_ia32_punpcklbw256",
"__builtin_ia32_punpcklwd256",
"__builtin_ia32_punpckldq256",
"__builtin_ia32_punpcklqdq256",
"__builtin_ia32_pxor256",
"__builtin_ia32_movntdqa256",
"__builtin_ia32_vbroadcastss_ps",
"__builtin_ia32_vbroadcastss_ps256",
"__builtin_ia32_vbroadcastsd_pd256",
"__builtin_ia32_vbroadcastsi256",
"__builtin_ia32_pblendd128",
"__builtin_ia32_pblendd256",
"__builtin_ia32_pbroadcastb256",
"__builtin_ia32_pbroadcastw256",
"__builtin_ia32_pbroadcastd256",
"__builtin_ia32_pbroadcastq256",
"__builtin_ia32_pbroadcastb128",
"__builtin_ia32_pbroadcastw128",
"__builtin_ia32_pbroadcastd128",
"__builtin_ia32_pbroadcastq128",
"__builtin_ia32_permvarsi256",
"__builtin_ia32_permdf256",
"__builtin_ia32_permvarsf256",
"__builtin_ia32_permdi256",
"__builtin_ia32_permti256",
"__builtin_ia32_extract128i256",
"__builtin_ia32_insert128i256",
"__builtin_ia32_maskloadd256",
"__builtin_ia32_maskloadq256",
"__builtin_ia32_maskloadd",
"__builtin_ia32_maskloadq",
"__builtin_ia32_maskstored256",
"__builtin_ia32_maskstoreq256",
"__builtin_ia32_maskstored",
"__builtin_ia32_maskstoreq",
"__builtin_ia32_psllv8si",
"__builtin_ia32_psllv4si",
"__builtin_ia32_psllv4di",
"__builtin_ia32_psllv2di",
"__builtin_ia32_psrav8si",
"__builtin_ia32_psrav4si",
"__builtin_ia32_psrlv8si",
"__builtin_ia32_psrlv4si",
"__builtin_ia32_psrlv4di",
"__builtin_ia32_psrlv2di",
"__builtin_ia32_gathersiv2df",
"__builtin_ia32_gathersiv4df",
"__builtin_ia32_gatherdiv2df",
"__builtin_ia32_gatherdiv4df",
"__builtin_ia32_gathersiv4sf",
"__builtin_ia32_gathersiv8sf",
"__builtin_ia32_gatherdiv4sf",
"__builtin_ia32_gatherdiv4sf256",
"__builtin_ia32_gathersiv2di",
"__builtin_ia32_gathersiv4di",
"__builtin_ia32_gatherdiv2di",
"__builtin_ia32_gatherdiv4di",
"__builtin_ia32_gathersiv4si",
"__builtin_ia32_gathersiv8si",
"__builtin_ia32_gatherdiv4si",
"__builtin_ia32_gatherdiv4si256",
"__builtin_ia32_aesenc128",
"__builtin_ia32_aesenclast128",
"__builtin_ia32_aesdec128",
"__builtin_ia32_aesdeclast128",
"__builtin_ia32_aeskeygenassist128",
"__builtin_ia32_aesimc128",
"__builtin_ia32_pclmulqdq128",
"__builtin_ia32_rdfsbase32",
"__builtin_ia32_rdfsbase64",
"__builtin_ia32_rdgsbase32",
"__builtin_ia32_rdgsbase64",
"__builtin_ia32_rdrand16_step",
"__builtin_ia32_rdrand32_step",
"__builtin_ia32_rdrand64_step",
"__builtin_ia32_ptwrite32",
"__builtin_ia32_ptwrite64",
"__builtin_ia32_movntsd",
"__builtin_ia32_movntss",
"__builtin_ia32_extrqi",
"__builtin_ia32_insertq",
"__builtin_ia32_insertqi",
"__builtin_ia32_vfrczpd",
"__builtin_ia32_vfrczps",
"__builtin_ia32_vfrczsd",
"__builtin_ia32_vfrczss",
"__builtin_ia32_vfrczpd256",
"__builtin_ia32_vfrczps256",
"__builtin_ia32_vpcmov",
"__builtin_ia32_vpcmov_v2di",
"__builtin_ia32_vpcmov_v4si",
"__builtin_ia32_vpcmov_v8hi",
"__builtin_ia32_vpcmov_v16qi",
"__builtin_ia32_vpcmov_v2df",
"__builtin_ia32_vpcmov_v4sf",
"__builtin_ia32_vpcmov_v4di256",
"__builtin_ia32_vpcmov_v8si256",
"__builtin_ia32_vpcmov_v16hi256",
"__builtin_ia32_vpcmov_v32qi256",
"__builtin_ia32_vpcmov_v4df256",
"__builtin_ia32_vpcmov_v8sf256",
"__builtin_ia32_vpcomeqb",
"__builtin_ia32_vpcomeqw",
"__builtin_ia32_vpcomeqd",
"__builtin_ia32_vpcomeqq",
"__builtin_ia32_vpcomequb",
"__builtin_ia32_vpcomequd",
"__builtin_ia32_vpcomequq",
"__builtin_ia32_vpcomequw",
"__builtin_ia32_vpcomfalseb",
"__builtin_ia32_vpcomfalsed",
"__builtin_ia32_vpcomfalseq",
"__builtin_ia32_vpcomfalseub",
"__builtin_ia32_vpcomfalseud",
"__builtin_ia32_vpcomfalseuq",
"__builtin_ia32_vpcomfalseuw",
"__builtin_ia32_vpcomfalsew",
"__builtin_ia32_vpcomgeb",
"__builtin_ia32_vpcomged",
"__builtin_ia32_vpcomgeq",
"__builtin_ia32_vpcomgeub",
"__builtin_ia32_vpcomgeud",
"__builtin_ia32_vpcomgeuq",
"__builtin_ia32_vpcomgeuw",
"__builtin_ia32_vpcomgew",
"__builtin_ia32_vpcomgtb",
"__builtin_ia32_vpcomgtd",
"__builtin_ia32_vpcomgtq",
"__builtin_ia32_vpcomgtub",
"__builtin_ia32_vpcomgtud",
"__builtin_ia32_vpcomgtuq",
"__builtin_ia32_vpcomgtuw",
"__builtin_ia32_vpcomgtw",
"__builtin_ia32_vpcomleb",
"__builtin_ia32_vpcomled",
"__builtin_ia32_vpcomleq",
"__builtin_ia32_vpcomleub",
"__builtin_ia32_vpcomleud",
"__builtin_ia32_vpcomleuq",
"__builtin_ia32_vpcomleuw",
"__builtin_ia32_vpcomlew",
"__builtin_ia32_vpcomltb",
"__builtin_ia32_vpcomltd",
"__builtin_ia32_vpcomltq",
"__builtin_ia32_vpcomltub",
"__builtin_ia32_vpcomltud",
"__builtin_ia32_vpcomltuq",
"__builtin_ia32_vpcomltuw",
"__builtin_ia32_vpcomltw",
"__builtin_ia32_vpcomneb",
"__builtin_ia32_vpcomned",
"__builtin_ia32_vpcomneq",
"__builtin_ia32_vpcomneub",
"__builtin_ia32_vpcomneud",
"__builtin_ia32_vpcomneuq",
"__builtin_ia32_vpcomneuw",
"__builtin_ia32_vpcomnew",
"__builtin_ia32_vpcomtrueb",
"__builtin_ia32_vpcomtrued",
"__builtin_ia32_vpcomtrueq",
"__builtin_ia32_vpcomtrueub",
"__builtin_ia32_vpcomtrueud",
"__builtin_ia32_vpcomtrueuq",
"__builtin_ia32_vpcomtrueuw",
"__builtin_ia32_vpcomtruew",
"__builtin_ia32_vphaddbd",
"__builtin_ia32_vphaddbq",
"__builtin_ia32_vphaddbw",
"__builtin_ia32_vphadddq",
"__builtin_ia32_vphaddubd",
"__builtin_ia32_vphaddubq",
"__builtin_ia32_vphaddubw",
"__builtin_ia32_vphaddudq",
"__builtin_ia32_vphadduwd",
"__builtin_ia32_vphadduwq",
"__builtin_ia32_vphaddwd",
"__builtin_ia32_vphaddwq",
"__builtin_ia32_vphsubbw",
"__builtin_ia32_vphsubdq",
"__builtin_ia32_vphsubwd",
"__builtin_ia32_vpmacsdd",
"__builtin_ia32_vpmacsdqh",
"__builtin_ia32_vpmacsdql",
"__builtin_ia32_vpmacssdd",
"__builtin_ia32_vpmacssdqh",
"__builtin_ia32_vpmacssdql",
"__builtin_ia32_vpmacsswd",
"__builtin_ia32_vpmacssww",
"__builtin_ia32_vpmacswd",
"__builtin_ia32_vpmacsww",
"__builtin_ia32_vpmadcsswd",
"__builtin_ia32_vpmadcswd",
"__builtin_ia32_vpperm",
"__builtin_ia32_vprotb",
"__builtin_ia32_vprotd",
"__builtin_ia32_vprotq",
"__builtin_ia32_vprotw",
"__builtin_ia32_vpshab",
"__builtin_ia32_vpshad",
"__builtin_ia32_vpshaq",
"__builtin_ia32_vpshaw",
"__builtin_ia32_vpshlb",
"__builtin_ia32_vpshld",
"__builtin_ia32_vpshlq",
"__builtin_ia32_vpshlw",
"__builtin_ia32_vfmaddpd",
"__builtin_ia32_vfmaddps",
"__builtin_ia32_vfmaddsd",
"__builtin_ia32_vfmaddss",
"__builtin_ia32_vfmsubpd",
"__builtin_ia32_vfmsubps",
"__builtin_ia32_vfmsubsd",
"__builtin_ia32_vfmsubss",
"__builtin_ia32_vfnmaddpd",
"__builtin_ia32_vfnmaddps",
"__builtin_ia32_vfnmaddsd",
"__builtin_ia32_vfnmaddss",
"__builtin_ia32_vfnmsubpd",
"__builtin_ia32_vfnmsubps",
"__builtin_ia32_vfnmsubsd",
"__builtin_ia32_vfnmsubss",
"__builtin_ia32_vfmaddpd256",
"__builtin_ia32_vfmaddps256",
"__builtin_ia32_vfmsubpd256",
"__builtin_ia32_vfmsubps256",
"__builtin_ia32_vfnmaddpd256",
"__builtin_ia32_vfnmaddps256",
"__builtin_ia32_vfnmsubpd256",
"__builtin_ia32_vfnmsubps256",
"__builtin_ia32_vfmaddsubpd256",
"__builtin_ia32_vfmaddsubps256",
"__builtin_ia32_vfmsubaddpd256",
"__builtin_ia32_vfmsubaddps256",
"__builtin_ia32_llwpcb16",
"__builtin_ia32_llwpcb32",
"__builtin_ia32_llwpcb64",
"__builtin_ia32_lwpval16",
"__builtin_ia32_lwpval32",
"__builtin_ia32_lwpval64",
"__builtin_ia32_lwpins16",
"__builtin_ia32_lwpins32",
"__builtin_ia32_lwpins64",
"__builtin_ia32_bextr_u64",
"__builtin_ia32_lzcnt_u64",
"__builtin_ia32_fxsave",
"__builtin_ia32_fxrstor",
"__builtin_ia32_fxsave64",
"__builtin_ia32_fxrstor64",
"__builtin_ia32_xsave",
"__builtin_ia32_xrstor",
"__builtin_ia32_xsave64",
"__builtin_ia32_xrstor64",
"__builtin_ia32_xsaveopt",
"__builtin_ia32_xsaveopt64",
"__builtin_ia32_bextri_u32",
"__builtin_ia32_bextri_u64",
"__builtin_ia32_femms",
"__builtin_ia32_pavgusb",
"__builtin_ia32_pf2id",
"__builtin_ia32_pfacc",
"__builtin_ia32_pfadd",
"__builtin_ia32_pfcmpeq",
"__builtin_ia32_pfcmpge",
"__builtin_ia32_pfcmpgt",
"__builtin_ia32_pfmax",
"__builtin_ia32_pfmin",
"__builtin_ia32_pfmul",
"__builtin_ia32_pfrcp",
"__builtin_ia32_pfrcpit1",
"__builtin_ia32_pfrcpit2",
"__builtin_ia32_pfrsqrt",
"__builtin_ia32_pfsub",
"__builtin_ia32_pfsubr",
"__builtin_ia32_pi2fd",
"__builtin_ia32_pmulhrw",
"__builtin_ia32_pf2iw",
"__builtin_ia32_pfnacc",
"__builtin_ia32_pfpnacc",
"__builtin_ia32_pi2fw",
"__builtin_ia32_pswapdsf",
"__builtin_ia32_pswapdsi",
"__builtin_ia32_xbegin",
"__builtin_ia32_xend",
"__builtin_ia32_xabort",
"__builtin_ia32_xtest",
"__builtin_ia32_monitorx",
"__builtin_ia32_mwaitx",
"__builtin_ia32_wrpkru",
"__builtin_ia32_rdpkru",
"__builtin_ia32_rdsspd",
"__builtin_ia32_rdsspq",
"__builtin_ia32_incsspd",
"__builtin_ia32_incsspq",
"__has_nothrow_assign",
"__has_trivial_assign",
"__has_nothrow_copy",
"__has_trivial_copy",
"__has_nothrow_constructor",
"__has_trivial_constructor",
"__is_pod",
"__has_trivial_destructor",
"__has_virtual_destructor",
"__is_abstract",
"__is_base_of",
"__is_class",
"__is_empty",
"__is_enum",
"__is_literal_type",
"__is_polymorphic",
"__is_standard_layout",
"__is_trivial",
"__is_union",
"__underlying_type",
"__integer_pack",
"__is_same",
"COSMOPOLITAN_CXX_START_",
"COSMOPOLITAN_CXX_END_",
"COSMOPOLITAN_CXX_USING_",
"COSMOPOLITAN_C_START_",
"COSMOPOLITAN_C_END_",
"MACHINE_CODE_ANALYSIS_BEGIN_",
"MACHINE_CODE_ANALYSIS_END_",
"DebugBreak",
"VEIL",
"CONCEAL",
"EXPROPRIATE",
"YOINK",
"STATIC_YOINK",
"STATIC_YOINK_SOURCE",
"STRINGIFY",
"likely",
"unlikely",
"assume",
    }
  },

  { Id=4,
    List= {
"NULL",
"true",
"false",
"__func__",
"__VA_ARGS__",
"__STDC__",
"__STDC_HOSTED__",
"__STDC_VERSION__",
"__TIME__",
"__STDC_ISO_10646__",
"__STDC_MB_MIGHT_NEQ_WC__",
"__STDC_UTF_16__",
"__STDC_UTF_32__",
"__STDC_ANALYZABLE__",
"__STDC_IEC_559_COMPLEX__",
"__STDC_LIB_EXT1__",
"__STDC_NO_ATOMICS__",
"__STDC_NO_COMPLEX__",
"__STDC_NO_THREADS__",
"__STDC_NO_VLA__",
"__STDC_WANT_LIB_EXT1__",
"IMAGE_BASE_VIRTUAL",
"IMAGE_BASE_REAL",
"IMAGE_BASE_PHYSICAL",
"SCHAR_MAX",
"SHRT_MAX",
"INT_MAX",
"LONG_MAX",
"LLONG_MAX",
"LONG_LONG_MAX",
"SIZE_MAX",
"SSIZE_MAX",
"INT8_MAX",
"INT16_MAX",
"INT32_MAX",
"INT64_MAX",
"INT128_MAX",
"WINT_MAX",
"WCHAR_MAX",
"INTPTR_MAX",
"PTRDIFF_MAX",
"SCHAR_MIN",
"SHRT_MIN",
"UINT_MIN",
"INT_MIN",
"LONG_MIN",
"LLONG_MIN",
"LONG_LONG_MIN",
"SIZE_MIN",
"INT8_MIN",
"INT16_MIN",
"INT32_MIN",
"INT64_MIN",
"INT128_MIN",
"INTMAX_MIN",
"INTPTR_MIN",
"WINT_MIN",
"WCHAR_MIN",
"PTRDIFF_MIN",
"USHRT_MAX",
"UINT_MAX",
"ULONG_MAX",
"ULLONG_MAX",
"ULONG_LONG_MAX",
"UINTPTR_MAX",
"UINT8_MAX",
"UINT16_MAX",
"UINT32_MAX",
"UINT64_MAX",
"UINT128_MAX",
"USHRT_MIN",
"ULONG_MIN",
"ULLONG_MIN",
"ULONG_LONG_MIN",
"UINT8_MIN",
"UINT16_MIN",
"UINT32_MIN",
"UINT64_MIN",
"UINT128_MIN",
"UINTMAX_MIN",
"UINTPTR_MIN",
"MB_CUR_MAX",
"MB_LEN_MAX",
"INTMAX_MAX",
"UINTMAX_MAX",
"INTMAX_MAX",
"UINTMAX_MAX",
"DBL_MIN",
"DBL_MAX",
"FLT_MIN",
"FLT_MAX",
"__SAUCE__",
"PAGESIZE",
"FRAMESIZE",
"BIGPAGESIZE",
"STACKSIZE",
"ARG_MAX",
"PATH_MAX",
"BUFSIZ",
"CACHELINE",
"CHAR_BIT",
"NAME_MAX",
"NSIG",
"CHILD_MAX",
"OPEN_MAX",
"ATEXIT_MAX",
"IM_FEELING_NAUGHTY",
"__REAL_MODE__",
"__x86__",
"__i386__",
"__W__",
"__PG__",
"__MFENTRY__",
"__MNO_VZEROUPPER__",
"__SANITIZE_ADDRESS__",
"__SANITIZE_UNDEFINED__",
"__MNOP_MCOUNT__",
"__MRECORD_MCOUNT__",
"__x86_64__",
"__amd64__",
"__WINT_MAX__",
"__BIGGEST_ALIGNMENT__",
"__SIZE_MAX__",
"__PTRDIFF_MAX__",
"__UINTMAX_MAX__",
"__SIG_ATOMIC_MAX__",
"__INT8_MAX__",
"__INT16_MAX__",
"__INT32_MAX__",
"__INT64_MAX__",
"__UINT8_MAX__",
"__UINT16_MAX__",
"__UINT32_MAX__",
"__UINT64_MAX__",
"__INT_LEAST8_MAX__",
"__INT_LEAST16_MAX__",
"__INT_LEAST32_MAX__",
"__INT_LEAST64_MAX__",
"__UINT_LEAST8_MAX__",
"__UINT_LEAST16_MAX__",
"__UINT_LEAST32_MAX__",
"__UINT_LEAST64_MAX__",
"__INT_FAST8_MAX__",
"__INT_FAST16_MAX__",
"__INT_FAST32_MAX__",
"__INT_FAST64_MAX__",
"__UINT_FAST8_MAX__",
"__UINT_FAST16_MAX__",
"__UINT_FAST32_MAX__",
"__UINT_FAST64_MAX__",
"__INTPTR_MAX__",
"__UINTPTR_MAX__",
"__WCHAR_MIN__",
"__WINT_MIN__",
"__SIG_ATOMIC_MIN__",
"__SCHAR_WIDTH__",
"__SHRT_WIDTH__",
"__INT_WIDTH__",
"__LONG_WIDTH__",
"__LONG_LONG_WIDTH__",
"__PTRDIFF_WIDTH__",
"__SIG_ATOMIC_WIDTH__",
"__SIZE_WIDTH__",
"__WCHAR_WIDTH__",
"__WINT_WIDTH__",
"__INT_LEAST8_WIDTH__",
"__INT_LEAST16_WIDTH__",
"__INT_LEAST32_WIDTH__",
"__INT_LEAST64_WIDTH__",
"__INT_FAST8_WIDTH__",
"__INT_FAST16_WIDTH__",
"__INT_FAST32_WIDTH__",
"__INT_FAST64_WIDTH__",
"__INTPTR_WIDTH__",
"__INTMAX_WIDTH__",
"__SIZEOF_INT__",
"__SIZEOF_INTMAX__",
"__SIZEOF_UINTMAX__",
"__SIZEOF_LONG__",
"__SIZEOF_LONG_LONG__",
"__SIZEOF_SHORT__",
"__SIZEOF_POINTER__",
"__SIZEOF_FLOAT__",
"__SIZEOF_DOUBLE__",
"__SIZEOF_LONG_DOUBLE__",
"__SIZEOF_SIZE_T__",
"__SIZEOF_WCHAR_T__",
"__SIZEOF_WINT_T__",
"__SIZEOF_PTRDIFF_T__",
"__TIMESTAMP__",
"__BASE_FILE__",
"__CHAR_BIT__",
"__FUNCTION__",
"__GNUC_MINOR__",
"__GNUC_PATCHLEVEL__",
"__GNUC__",
"__GNUG__",
"__INCLUDE_LEVEL__",
"__INTMAX_MAX__",
"__INT_MAX__",
"__LONG_LONG_MAX__",
"__LONG_MAX__",
"__SCHAR_MAX__",
"__SHRT_MAX__",
"__DBL_MIN__",
"__DBL_MAX__",
"__FLT_MIN__",
"__FLT_MAX__",
"__WCHAR_MAX__",
"__WCHAR_UNSIGNED__",
"__AES__",
"__AVX__",
"__AVX2__",
"__ABM__",
"__BMI__",
"__BMI2__",
"__FMA__",
"__ADX__",
"__PCLMUL__",
"__POPCNT__",
"__RDRND__",
"__RDSEED__",
"__SHA__",
"__SSE__",
"__SSE2__",
"__SSE3__",
"__SSSE3__",
"__SSE4_1__",
"__SSE4_2__",
"__XSAVE__",
"__CLFLUSHOPT__",
"__RDPID__",
"__STDC_IEC_559__",
"__FILE__",
"__LINE__",
"__DATE__",
    }
  },

--  { Id=3,
--    List= {
--      "typedef", "inline", "auto", "class", "explicit", "extern", "friend", "inline", "mutable", "operator",
--      "register", "template", "private", "protected", "public", "typeid", "virtual", "volatile", "constexpr", "nullptr", "decltype"
--    }
--  },
--  { Id=3,
--    Regex=[[(\w+)\s*\:\:]]
--  },
--  { Id=4,
--    Regex=[[(\w+)\s*\(]]
--  }
}

Strings = {
  Delimiter=[["|']],
  RawPrefix="R",
  Escape=[=[\\[abtnvfre\\\?'"]|\\\d{1,3}|\\x[[:xdigit:]]{2}]=],
}

Comments = {
  { Block=true,
    Nested=false,
    Delimiter = { [[\/\*]], [[\*\/]] }
  },
  {
    Block=false,
    Delimiter = { [[//]] }
  }
}

IgnoreCase=false

PreProcessor = {
  Prefix=[[#]],
  Continuation="\\",
}

Operators=[[\(|\)|\[|\]|\{|\}|\,|\;|\.|\:|\&|<|>|\!|=|\/|\*|\%|\+|\-|\~|\||\^|\?]]

EnableIndentation=true

-- resolve issue with C++14 number separator syntax
function OnStateChange(oldState, newState, token)

  if token=="'" and oldState==HL_NUMBER and newState==HL_STRING then
    return HL_NUMBER
  end

  return newState
end
