1 /* { dg-do compile } */
2 /* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2" } */
3 /* { dg-final { check-function-bodies "**" "" } } */
9 ** lbu\s+[a-x0-9]+,0\s*\([a-x0-9]+\)
10 ** sb\s+[a-x0-9]+,0\s*\([a-x0-9]+\)
13 void mov0 (int8_t *in
, int8_t *out
)
21 ** lhu\s+[a-x0-9]+,0\s*\([a-x0-9]+\)
22 ** sh\s+[a-x0-9]+,0\s*\([a-x0-9]+\)
25 void mov1 (int8_t *in
, int8_t *out
)
33 ** lw\s+[a-x0-9]+,0\s*\([a-x0-9]+\)
34 ** sw\s+[a-x0-9]+,0\s*\([a-x0-9]+\)
37 void mov2 (int8_t *in
, int8_t *out
)
45 ** ld\s+[a-x0-9]+,0\s*\([a-x0-9]+\)
46 ** sd\s+[a-x0-9]+,0\s*\([a-x0-9]+\)
49 void mov3 (int8_t *in
, int8_t *out
)
57 ** vsetivli\s+zero,\s*16,\s*e8,\s*mf8,\s*t[au],\s*m[au]
58 ** vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
59 ** vse8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
62 void mov4 (int8_t *in
, int8_t *out
)
64 v16qi v
= *(v16qi
*)in
;
71 ** vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*t[au],\s*m[au]
72 ** vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
73 ** vse8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
76 void mov5 (int8_t *in
, int8_t *out
)
78 v32qi v
= *(v32qi
*)in
;
85 ** vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*t[au],\s*m[au]
86 ** vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
87 ** vse8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
90 void mov6 (int8_t *in
, int8_t *out
)
92 v64qi v
= *(v64qi
*)in
;
99 ** vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf4,\s*t[au],\s*m[au]
100 ** vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
101 ** vse8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
104 void mov7 (int8_t *in
, int8_t *out
)
106 v128qi v
= *(v128qi
*)in
;
112 ** li\s+[a-x0-9]+,256
113 ** vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf2,\s*t[au],\s*m[au]
114 ** vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
115 ** vse8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
118 void mov8 (int8_t *in
, int8_t *out
)
120 v256qi v
= *(v256qi
*)in
;
126 ** li\s+[a-x0-9]+,512
127 ** vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m1,\s*t[au],\s*m[au]
128 ** vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
129 ** vse8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
132 void mov9 (int8_t *in
, int8_t *out
)
134 v512qi v
= *(v512qi
*)in
;
140 ** li\s+[a-x0-9]+,1024
141 ** vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m2,\s*t[au],\s*m[au]
142 ** vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
143 ** vse8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
146 void mov10 (int8_t *in
, int8_t *out
)
148 v1024qi v
= *(v1024qi
*)in
;
154 ** li\s+[a-x0-9]+,4096
155 ** addi\s+[a-x0-9]+,[a-x0-9]+,-2048
156 ** vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m4,\s*t[au],\s*m[au]
157 ** vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
158 ** vse8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
161 void mov11 (int8_t *in
, int8_t *out
)
163 v2048qi v
= *(v2048qi
*)in
;
169 ** li\s+[a-x0-9]+,4096
170 ** vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*m8,\s*t[au],\s*m[au]
171 ** vle8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
172 ** vse8\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
175 void mov12 (int8_t *in
, int8_t *out
)
177 v4096qi v
= *(v4096qi
*)in
;