// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --use-same-for-encoding --version 6 // RUN: llvm-mc --triple=riscv32 -mattr=+experimental-y --riscv-no-aliases --show-encoding --show-inst --defsym=XLEN=32 < %s \ // RUN: | FileCheck --check-prefixes=CHECK,CHECK-ASM,CHECK-ASM-32,CHECK-32 %s // RUN: llvm-mc --filetype=obj --triple=riscv32 --mattr=+experimental-y --defsym=XLEN=32 --riscv-add-build-attributes < %s \ // RUN: | llvm-objdump -M no-aliases -d --no-print-imm-hex - | FileCheck %s --check-prefixes=CHECK,CHECK-32 // RUN: llvm-mc --triple=riscv64 --mattr=+experimental-y --riscv-no-aliases --show-encoding --show-inst --defsym=XLEN=64 < %s \ // RUN: | FileCheck --check-prefixes=CHECK,CHECK-ASM,CHECK-ASM-64,CHECK-64 %s // RUN: llvm-mc --filetype=obj --triple=riscv64 --mattr=+experimental-y --defsym=XLEN=64 --riscv-add-build-attributes < %s \ // RUN: | llvm-objdump -M no-aliases -d --no-print-imm-hex - | FileCheck %s --check-prefixes=CHECK,CHECK-64 yadd a0, a0, a1 // CHECK: yadd a0, a0, a1 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xb5,0x06] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > yaddi a0, a0, 12 // CHECK: yaddi a0, a0, 12 // CHECK-ASM-SAME: # encoding: [0x7b,0x45,0xc5,0x00] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > yadd a0, a0, 12 // CHECK: yaddi a0, a0, 12 // CHECK-ASM-SAME: # encoding: [0x7b,0x45,0xc5,0x00] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > yaddrw a0, a0, a1 // CHECK: yaddrw a0, a0, a1 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xb5,0x16] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ypermc a0, a0, a0 // CHECK: ypermc a0, a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x26] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ymv a0, a0 // CHECK: ymv a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x05,0x06] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > //# Note: mv expands to integer addi and not capability ymv: mv a0, a0 // CHECK: addi a0, a0, 0 // CHECK-ASM-SAME: # encoding: [0x13,0x05,0x05,0x00] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > packy a0, a0, a0 // CHECK: packy a0, a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x02] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > yhiw a0, a0, a0 // CHECK: packy a0, a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x02] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndsw a0, a0, a0 // CHECK: ybndsw a0, a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x36] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndsrw a0, a0, a0 // CHECK: ybndsrw a0, a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x46] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndswi a0, a0, 12 // CHECK: ybndswi a0, a0, 12 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0xc5,0xe0] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndswi a0, a0, 12 // CHECK: ybndswi a0, a0, 12 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0xc5,0xe0] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > //# Test all the min and max values for the ybndswi encoding ybndswi a0, a0, 1 // CHECK: ybndswi a0, a0, 1 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x15,0xe0] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndswi a0, a0, 255 // CHECK: ybndswi a0, a0, 255 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0xf5,0xef] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndswi a0, a0, 264 // CHECK: ybndswi a0, a0, 264 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x05,0xf1] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndswi a0, a0, 504 // CHECK: ybndswi a0, a0, 504 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0xf5,0xf1] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndswi a0, a0, 512 // CHECK-ASM: ybndswi a0, a0, 512 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x05,0xf2] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndswi a0, a0, 528 // CHECK-ASM: ybndswi a0, a0, 528 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x15,0xf2] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndswi a0, a0, 2048 // CHECK-ASM: ybndswi a0, a0, 2048 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x05,0xf8] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndswi a0, a0, 4080 // CHECK-ASM: ybndswi a0, a0, 4080 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0xf5,0xff] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybndswi a0, a0, 4096 // CHECK: ybndswi a0, a0, 4096 // CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x05,0xe0] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ysunseal a0, a0, a0 // CHECK: ysunseal a0, a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x0e] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybld a0, a0, a0 // CHECK: ybld a0, a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x1e] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ybaser a0, a0 // CHECK: ybaser a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x05,0xf4] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ylenr a0, a0 // CHECK: ylenr a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x35,0xf4] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ytopr a0, a0 // CHECK: ytopr a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x25,0xf4] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ytagr a0, a0 // CHECK: ytagr a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x45,0xf4] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ypermr a0, a0 // CHECK: ypermr a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x15,0xf4] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > ytyper a0, a0 // CHECK: ytyper a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x55,0xf4] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > srliy a0, a0, XLEN // CHECK-32: srliy a0, a0, 32 // CHECK-64: srliy a0, a0, 64 // CHECK-ASM-32-SAME: # encoding: [0x7b,0x55,0x05,0x02] // CHECK-ASM-64-SAME: # encoding: [0x7b,0x55,0x05,0x04] // CHECK-ASM: # // CHECK-ASM-NEXT: # // CHECK-ASM-32-NEXT: # > // CHECK-ASM-64-NEXT: # > yhir a0, a0 // CHECK-32: srliy a0, a0, 32 // CHECK-64: srliy a0, a0, 64 // CHECK-ASM-32-SAME: # encoding: [0x7b,0x55,0x05,0x02] // CHECK-ASM-64-SAME: # encoding: [0x7b,0x55,0x05,0x04] // CHECK-ASM: # // CHECK-ASM-NEXT: # // CHECK-ASM-32-NEXT: # > // CHECK-ASM-64-NEXT: # > yeq a0, a0, a0 // CHECK: yeq a0, a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x0c] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > yss a0, a0, a0 // CHECK: yss a0, a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x1c] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # > yamask a0, a0 // CHECK: yamask a0, a0 // CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x05,0xf0] // CHECK-ASM-NEXT: # // CHECK-ASM-NEXT: # >