The failure is cause in QEMU function vext_check_store() function
require_align() is invoked.
For the failing instruction the following test is not passed:
/*
* Vector register should aligned with the passed-in LMUL (EMUL).
* If LMUL < 0, i.e. fractional LMUL, any vector register is allowed.
*/
static bool require_align(const int8_t val, const int8_t lmul)
{
return lmul <= 0 || extract32(val, 0, lmul) == 0;
}
I added some debug output for function vext_check_store():
eew = 3 but s->seq = 0.
eew = 3, s->sew = 0, s->lmul = 0
emul = 3 : emul >= -3 && emul <= 3 = 1
require_align(vd = 1, emul = 3) = 0
require_nf(vd = 1, nf = 1, emul = 3) = 1
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2133188
Title:
Illegal instruction in memset under qemu-user for riscv64
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/2133188/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs