Skip to content

VXRM randomization not supported for now #8

@kv-sc

Description

@kv-sc

Snippy command line (reproduce on release 1.0):

$ ./llvm-snippy -march=riscv64-linux-gnu -mattr="+v" -num-instrs=100 -seed=0 -model-plugin=None ./layout-vxrm.yaml

Use following config layout-vxrm.yaml:

sections:
  - no:        0
    VMA:       0x200000
    SIZE:      0x10000
    LMA:       0x200000
    ACCESS:    r
  - no:        1
    VMA:       0x210000
    SIZE:      0x100000
    LMA:       0x210000
    ACCESS:    rx
  - no:        2
    VMA:       0x100000
    SIZE:      0x100000
    LMA:       0x100000
    ACCESS:    rw

riscv-vector-unit:
  mode-distribution:
    VM:
      - [all_ones, 2.0]
    VL:
      - [vlmax, 2.0]
      - [any_legal, 1.0]
    VXRM:
      rnu: 1.0
      rne: 1.0
      rdn: 1.0
      ron: 1.0
    VXSAT:
      on: 1.0
      off: 1.0
    VTYPE:
      SEW:
        sew_8: 1.0
        sew_16: 1.0
        sew_32: 1.0
        sew_64: 1.0
      LMUL:
        m1: 1.0
        m2: 1.0
        m4: 1.0
        m8: 1.0
        mf2: 1.0
        mf4: 1.0
        mf8: 1.0
      VMA:
        mu: 1.0
        ma: 1.0
      VTA:
        tu: 1.0
        ta: 1.0

histogram:
    - [VSETVLI, 1.0]
    - [VAADDU_VX, 1.0]
    - [VAADDU_VV, 1.0]
    - [VAADD_VX, 1.0]
    - [VAADD_VV, 1.0]
    - [VASUBU_VX, 1.0]
    - [VASUBU_VV, 1.0]
    - [VASUB_VX, 1.0]
    - [VASUB_VV, 1.0]

Now disassemble result:

$SC_GCC_PATH/bin/riscv64-unknown-linux-gnu-objdump -d layout-vxrm.yaml.elf > layout-vxrm.yaml.dis

Disassembled output do not contain any VXRM mode switches:

...
   0: 00c00c93            li  s9,12
   4: 049cffd7            vsetvli t6,s9,e16,m2,ta,mu
   8: 7e002057            vmset.m v0
   c: 2f2d2757            vasub.vv  v14,v18,v26
  10: 2caa2a57            vasub.vv  v20,v10,v20,v0.t
  14: 2ec86e57            vasub.vx  v28,v12,a6
  18: 27e72f57            vaadd.vv  v30,v30,v14
  1c: 28ebea57            vasubu.vx v20,v14,s7,v0.t
  20: 29a82557            vasubu.vv v10,v26,v16,v0.t
  24: 28a06557            vasubu.vx v10,v10,zero,v0.t
  28: 294e2657            vasubu.vv v12,v20,v28,v0.t
  2c: 20472457            vaaddu.vv v8,v4,v14,v0.t
  30: 2f232257            vasub.vv  v4,v18,v6
  34: 28e56e57            vasubu.vx v28,v14,a0,v0.t
  38: 2da32d57            vasub.vv  v26,v26,v6,v0.t
  3c: 2689e157            vaadd.vx  v2,v8,s3
  40: 00400b13            li  s6,4
  44: 04fb70d7            vsetvli ra,s6,e16,mf2,ta,mu
...

We need this support in llvm-snippy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions