diff options
Diffstat (limited to 'results/classifier/zero-shot/105/instruction/1441')
| -rw-r--r-- | results/classifier/zero-shot/105/instruction/1441 | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/results/classifier/zero-shot/105/instruction/1441 b/results/classifier/zero-shot/105/instruction/1441 new file mode 100644 index 000000000..c41713774 --- /dev/null +++ b/results/classifier/zero-shot/105/instruction/1441 @@ -0,0 +1,47 @@ +instruction: 0.967 +vnc: 0.812 +graphic: 0.732 +device: 0.715 +network: 0.594 +socket: 0.471 +semantic: 0.412 +boot: 0.340 +assembly: 0.166 +mistranslation: 0.152 +other: 0.142 +KVM: 0.074 + +Assertion failure when executing RISC-V vfncvt.rtz.x.f.w instruction +Description of problem: +When emulating the `vfncvt.rtz.x.f.w` instruction, QEMU crashes with an assertion failure at `target/riscv/translate.c:211`, complaining that ```decode_save_opc: Assertion `ctx->insn_start != NULL' failed.``` + +It appears this problem first emerged with https://gitlab.com/qemu-project/qemu/-/commit/a9814e3e08d2aacbd9018c36c77c2fb652537848 +Steps to reproduce: +The following C program triggers the assertion failure when built a sufficiently recent version of the Clang cross compiler (in my case 15.0.6): +``` +/* test.c */ +#include <riscv_vector.h> + +#define LEN 4 + +int main(int argc, char *argv[]) { + double in[LEN]; + int out[LEN]; + + vfloat64m1_t vf = vle64_v_f64m1(in, LEN); + vint32mf2_t vi = vfncvt_rtz_x_f_w_i32mf2(vf, LEN); + vse32_v_i32mf2(out, vi, LEN); + + return 0; +} +``` + +The above `test.c` can be compiled and run as follows: +``` +clang -O3 -march=rv64gcv -static test.c +qemu-riscv64 -cpu "rv64,zba=true,zbb=true,zbc=true,zbs=true,v=true,vlen=512,elen=64,vext_spec=v1.0" a.out +qemu-riscv64: ../target/riscv/translate.c:211: decode_save_opc: Assertion `ctx->insn_start != NULL' failed. +Segmentation fault (core dumped) +``` +Additional information: + |