1 " Vim syntax highlighting rules for GCC match-and-simplify language.
3 " Copyright (C) 2018 Free Software Foundation, Inc.
5 " This script is free software; you can redistribute it and/or modify
6 " it under the terms of the GNU General Public License as published by
7 " the Free Software Foundation; either version 3, or (at your option)
10 if exists("b:current_syntax")
14 " Some keywords have a question mark, e.g. 'convert?'
17 syn keyword pdTodo contained TODO FIXME XXX
19 syn keyword pdCtrl match simplify
20 syn keyword pdCtrl define_predicates define_operator_list
21 syn keyword pdCtrl if switch for with
23 syn keyword pdType type
25 syn keyword pdOp view_convert view_convert?
26 \ convert convert? convert1 convert2 convert1? convert2?
28 \ cond vec_cond vec_perm
29 \ pointer_plus pointer_diff
30 \ plus minus mult mult_highpart
31 \ trunc_div ceil_div floor_div round_div
32 \ trunc_mod ceil_mod floor_mod round_mod
34 \ fix_trunc float negate min max abs absu
35 \ lshift rshift lrotate rrotate
36 \ bit_ior bit_xor bit_and bit_not
37 \ truth_andif truth_orif truth_and
38 \ truth_or truth_xor truth_not
39 \ lt le gt ge eq ne unordered ordered
40 \ unlt unle ungt unge uneq ltgt
41 \ addr_space_convert fixed_convert
42 \ bit_insert complex conj
43 \ reduc_max reduc_min reduc_plus
44 \ dot_prod widen_sum sad fma
45 \ widen_mult widen_mult_plus widen_mult_minus widen_lshift
46 \ vec_widen_mult_hi vec_widen_mult_lo
47 \ vec_widen_mult_even vec_widen_mult_odd
48 \ vec_unpack_hi vec_unpack_lo
49 \ vec_unpack_float_hi vec_unpack_float_lo
50 \ vec_pack_trunc vec_pack_sat vec_pack_fix_trunc
51 \ vec_widen_lshift_hi vec_widen_lshift_lo
53 " Match commutative/single-use specifiers: :C, :c, :s, :cs, etc.
54 syn match pdOpSpec ":[CcSs]\+\>"
56 syn match pdCapture "@@\?[a-zA-Z0-9_]\+"
58 syn region pdComment start="/\*" end="\*/" contains=pdTodo
60 syn region pdPreProc start="^\s*#" skip="\\$" end="$" keepend
62 hi def link pdCtrl Statement
63 hi def link pdType Identifier
64 hi def link pdOp Constant
65 hi def link pdOpSpec Operator
66 hi def link pdCapture Special
67 hi def link pdComment Comment
68 hi def link pdTodo Todo
69 hi def link pdPreProc PreProc
71 let b:current_syntax = "gcc-match"