blob: ed08396dba1c51abf926c62921524a46f05ab8f7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
instruction: 0.496
syscall: 0.274
runtime: 0.229
Unable to set SVE VL to 1024 bits or above since 7b6a2198
Prior to 7b6a2198e71794c851f39ac7a92d39692c786820, the QEMU option sve-max-vq could be used to set the vector length of the implementation. This is useful (among other reasons) for testing software compiled with a fixed SVE vector length. Since this commit, the vector length is capped at 512 bits.
To reproduce the issue:
$ cat rdvl.s
.global _start
_start:
rdvl x0, #1
asr x0, x0, #4
mov x8, #93 // exit
svc #0
$ aarch64-linux-gnu-as -march=armv8.2-a+sve rdvl.s -o rdvl.o
$ aarch64-linux-gnu-ld rdvl.o
$ for vl in 1 2 4 8 16; do ../build-qemu/aarch64-linux-user/qemu-aarch64 -cpu max,sve-max-vq=$vl a.out; echo $?; done
1
2
4
4
4
For a QEMU built prior to the above revision, we get the output:
1
2
4
8
16
as expected. It seems that either the old behavior should be restored, or there should be an option to force a higher vector length?
|