[ARM] MVE predicate store patterns
[llvm-complete.git] / utils / vim / syntax / llvm.vim
blob1a060ab651408517c6e0fd1d97219b1fbae6af17
1 " Vim syntax file
2 " Language:   llvm
3 " Maintainer: The LLVM team, http://llvm.org/
4 " Version:      $Revision$
6 if version < 600
7   syntax clear
8 elseif exists("b:current_syntax")
9   finish
10 endif
12 syn case match
14 " Types.
15 " Types also include struct, array, vector, etc. but these don't
16 " benefit as much from having dedicated highlighting rules.
17 syn keyword llvmType void half float double x86_fp80 fp128 ppc_fp128
18 syn keyword llvmType label metadata x86_mmx
19 syn keyword llvmType type label opaque token
20 syn match   llvmType /\<i\d\+\>/
22 " Instructions.
23 " The true and false tokens can be used for comparison opcodes, but it's
24 " much more common for these tokens to be used for boolean constants.
25 syn keyword llvmStatement add addrspacecast alloca and arcp ashr atomicrmw
26 syn keyword llvmStatement bitcast br catchpad catchswitch catchret call callbr
27 syn keyword llvmStatement cleanuppad cleanupret cmpxchg eq exact extractelement
28 syn keyword llvmStatement extractvalue fadd fast fcmp fdiv fence fmul fpext
29 syn keyword llvmStatement fptosi fptoui fptrunc free frem fsub fneg getelementptr
30 syn keyword llvmStatement icmp inbounds indirectbr insertelement insertvalue
31 syn keyword llvmStatement inttoptr invoke landingpad load lshr malloc max min
32 syn keyword llvmStatement mul nand ne ninf nnan nsw nsz nuw oeq oge ogt ole
33 syn keyword llvmStatement olt one or ord phi ptrtoint resume ret sdiv select
34 syn keyword llvmStatement sext sge sgt shl shufflevector sitofp sle slt srem
35 syn keyword llvmStatement store sub switch trunc udiv ueq uge ugt uitofp ule ult
36 syn keyword llvmStatement umax umin une uno unreachable unwind urem va_arg
37 syn keyword llvmStatement xchg xor zext
39 " Keywords.
40 syn keyword llvmKeyword
41       \ acq_rel
42       \ acquire
43       \ addrspace
44       \ alias
45       \ align
46       \ alignstack
47       \ alwaysinline
48       \ appending
49       \ argmemonly
50       \ arm_aapcscc
51       \ arm_aapcs_vfpcc
52       \ arm_apcscc
53       \ asm
54       \ atomic
55       \ available_externally
56       \ blockaddress
57       \ builtin
58       \ byval
59       \ c
60       \ catch
61       \ caller
62       \ cc
63       \ ccc
64       \ cleanup
65       \ coldcc
66       \ comdat
67       \ common
68       \ constant
69       \ datalayout
70       \ declare
71       \ default
72       \ define
73       \ deplibs
74       \ dereferenceable
75       \ distinct
76       \ dllexport
77       \ dllimport
78       \ dso_local
79       \ dso_preemptable
80       \ except
81       \ external
82       \ externally_initialized
83       \ extern_weak
84       \ fastcc
85       \ filter
86       \ from
87       \ gc
88       \ global
89       \ hhvmcc
90       \ hhvm_ccc
91       \ hidden
92       \ initialexec
93       \ inlinehint
94       \ inreg
95       \ inteldialect
96       \ intel_ocl_bicc
97       \ internal
98       \ linkonce
99       \ linkonce_odr
100       \ localdynamic
101       \ localexec
102       \ local_unnamed_addr
103       \ minsize
104       \ module
105       \ monotonic
106       \ msp430_intrcc
107       \ musttail
108       \ naked
109       \ nest
110       \ noalias
111       \ nobuiltin
112       \ nocapture
113       \ noimplicitfloat
114       \ noinline
115       \ nonlazybind
116       \ nonnull
117       \ norecurse
118       \ noredzone
119       \ noreturn
120       \ nounwind
121       \ optnone
122       \ optsize
123       \ personality
124       \ private
125       \ protected
126       \ ptx_device
127       \ ptx_kernel
128       \ readnone
129       \ readonly
130       \ release
131       \ returned
132       \ returns_twice
133       \ sanitize_address
134       \ sanitize_memory
135       \ sanitize_thread
136       \ section
137       \ seq_cst
138       \ sideeffect
139       \ signext
140       \ syncscope
141       \ source_filename
142       \ speculatable
143       \ spir_func
144       \ spir_kernel
145       \ sret
146       \ ssp
147       \ sspreq
148       \ sspstrong
149       \ strictfp
150       \ swiftcc
151       \ swiftself
152       \ tail
153       \ target
154       \ thread_local
155       \ to
156       \ triple
157       \ unnamed_addr
158       \ unordered
159       \ uselistorder
160       \ uselistorder_bb
161       \ uwtable
162       \ volatile
163       \ weak
164       \ weak_odr
165       \ within
166       \ writeonly
167       \ x86_64_sysvcc
168       \ win64cc
169       \ x86_fastcallcc
170       \ x86_stdcallcc
171       \ x86_thiscallcc
172       \ zeroext
174 " Obsolete keywords.
175 syn keyword llvmError  getresult begin end
177 " Misc syntax.
178 syn match   llvmNoName /[%@!]\d\+\>/
179 syn match   llvmNumber /-\?\<\d\+\>/
180 syn match   llvmFloat  /-\?\<\d\+\.\d*\(e[+-]\d\+\)\?\>/
181 syn match   llvmFloat  /\<0x\x\+\>/
182 syn keyword llvmBoolean true false
183 syn keyword llvmConstant zeroinitializer undef null none
184 syn match   llvmComment /;.*$/
185 syn region  llvmString start=/"/ skip=/\\"/ end=/"/
186 syn match   llvmLabel /[-a-zA-Z$._][-a-zA-Z$._0-9]*:/
187 syn match   llvmIdentifier /[%@][-a-zA-Z$._][-a-zA-Z$._0-9]*/
189 " Named metadata and specialized metadata keywords.
190 syn match   llvmIdentifier /![-a-zA-Z$._][-a-zA-Z$._0-9]*\ze\s*$/
191 syn match   llvmIdentifier /![-a-zA-Z$._][-a-zA-Z$._0-9]*\ze\s*[=!]/
192 syn match   llvmType /!\zs\a\+\ze\s*(/
193 syn match   llvmConstant /\<DW_TAG_[a-z_]\+\>/
194 syn match   llvmConstant /\<DW_ATE_[a-zA-Z_]\+\>/
195 syn match   llvmConstant /\<DW_OP_[a-zA-Z0-9_]\+\>/
196 syn match   llvmConstant /\<DW_LANG_[a-zA-Z0-9_]\+\>/
197 syn match   llvmConstant /\<DW_VIRTUALITY_[a-z_]\+\>/
198 syn match   llvmConstant /\<DIFlag[A-Za-z]\+\>/
200 " Syntax-highlight lit test commands and bug numbers.
201 syn match  llvmSpecialComment /;\s*PR\d*\s*$/
202 syn match  llvmSpecialComment /;\s*REQUIRES:.*$/
203 syn match  llvmSpecialComment /;\s*RUN:.*$/
204 syn match  llvmSpecialComment /;\s*CHECK:.*$/
205 syn match  llvmSpecialComment "\v;\s*CHECK-(NEXT|NOT|DAG|SAME|LABEL):.*$"
206 syn match  llvmSpecialComment /;\s*XFAIL:.*$/
208 if version >= 508 || !exists("did_c_syn_inits")
209   if version < 508
210     let did_c_syn_inits = 1
211     command -nargs=+ HiLink hi link <args>
212   else
213     command -nargs=+ HiLink hi def link <args>
214   endif
216   HiLink llvmType Type
217   HiLink llvmStatement Statement
218   HiLink llvmNumber Number
219   HiLink llvmComment Comment
220   HiLink llvmString String
221   HiLink llvmLabel Label
222   HiLink llvmKeyword Keyword
223   HiLink llvmBoolean Boolean
224   HiLink llvmFloat Float
225   HiLink llvmNoName Identifier
226   HiLink llvmConstant Constant
227   HiLink llvmSpecialComment SpecialComment
228   HiLink llvmError Error
229   HiLink llvmIdentifier Identifier
231   delcommand HiLink
232 endif
234 let b:current_syntax = "llvm"