1# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -mattr=+f -show-encoding \
2# RUN:     | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s
3# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+v < %s \
4# RUN:     | llvm-objdump -d --mattr=+v - \
5# RUN:     | FileCheck -check-prefix=CHECK-INST-ALIAS %s
6#
7# RUN: llvm-mc %s -triple=riscv64 -riscv-no-aliases -mattr=+f -show-encoding \
8# RUN:     | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s
9# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+v < %s \
10# RUN:     | llvm-objdump -d --mattr=+v - \
11# RUN:     | FileCheck -check-prefix=CHECK-INST-ALIAS %s
12
13##################################
14# User Vector CSRs
15##################################
16
17# vstart
18# name
19# CHECK-INST: csrrs t1, vstart, zero
20# CHECK-ENC:  encoding: [0x73,0x23,0x80,0x00]
21# CHECK-INST-ALIAS: csrr t1, vstart
22# uimm12
23# CHECK-INST: csrrs t2, vstart, zero
24# CHECK-ENC:  encoding: [0xf3,0x23,0x80,0x00]
25# CHECK-INST-ALIAS: csrr t2, vstart
26# name
27csrrs t1, vstart, zero
28# uimm12
29csrrs t2, 0x008, zero
30
31# vxsat
32# name
33# CHECK-INST: csrrs t1, vxsat, zero
34# CHECK-ENC:  encoding: [0x73,0x23,0x90,0x00]
35# CHECK-INST-ALIAS: csrr t1, vxsat
36# uimm12
37# CHECK-INST: csrrs t2, vxsat, zero
38# CHECK-ENC:  encoding: [0xf3,0x23,0x90,0x00]
39# CHECK-INST-ALIAS: csrr t2, vxsat
40# name
41csrrs t1, vxsat, zero
42# uimm12
43csrrs t2, 0x009, zero
44
45# vxrm
46# name
47# CHECK-INST: csrrs t1, vxrm, zero
48# CHECK-ENC:  encoding: [0x73,0x23,0xa0,0x00]
49# CHECK-INST-ALIAS: csrr t1, vxrm
50# uimm12
51# CHECK-INST: csrrs t2, vxrm, zero
52# CHECK-ENC:  encoding: [0xf3,0x23,0xa0,0x00]
53# CHECK-INST-ALIAS: csrr t2, vxrm
54# name
55csrrs t1, vxrm, zero
56# uimm12
57csrrs t2, 0x00a, zero
58
59# vl
60# name
61# CHECK-INST: csrrs t1, vl, zero
62# CHECK-ENC:  encoding: [0x73,0x23,0x00,0xc2]
63# CHECK-INST-ALIAS: csrr t1, vl
64# uimm12
65# CHECK-INST: csrrs t2, vl, zero
66# CHECK-ENC:  encoding: [0xf3,0x23,0x00,0xc2]
67# CHECK-INST-ALIAS: csrr t2, vl
68# name
69csrrs t1, vl, zero
70# uimm12
71csrrs t2, 0xc20, zero
72
73# vtype
74# name
75# CHECK-INST: csrrs t1, vtype, zero
76# CHECK-ENC:  encoding: [0x73,0x23,0x10,0xc2]
77# CHECK-INST-ALIAS: csrr t1, vtype
78# uimm12
79# CHECK-INST: csrrs t2, vtype, zero
80# CHECK-ENC:  encoding: [0xf3,0x23,0x10,0xc2]
81# CHECK-INST-ALIAS: csrr t2, vtype
82# name
83csrrs t1, vtype, zero
84# uimm12
85csrrs t2, 0xc21, zero
86
87# vlenb
88# name
89# CHECK-INST: csrrs t1, vlenb, zero
90# CHECK-ENC:  encoding: [0x73,0x23,0x20,0xc2]
91# CHECK-INST-ALIAS: csrr t1, vlenb
92# uimm12
93# CHECK-INST: csrrs t2, vlenb, zero
94# CHECK-ENC:  encoding: [0xf3,0x23,0x20,0xc2]
95# CHECK-INST-ALIAS: csrr t2, vlenb
96# name
97csrrs t1, vlenb, zero
98# uimm12
99csrrs t2, 0xc22, zero
100