CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
256 lines
11 KiB
ArmAsm
256 lines
11 KiB
ArmAsm
// 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: # <MCInst #[[#MCINST1:]] YADD{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X11>>
|
|
yaddi a0, a0, 12
|
|
// CHECK: yaddi a0, a0, 12
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x45,0xc5,0x00]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST2:]] YADDI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:12>>
|
|
yadd a0, a0, 12
|
|
// CHECK: yaddi a0, a0, 12
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x45,0xc5,0x00]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST2:]] YADDI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:12>>
|
|
yaddrw a0, a0, a1
|
|
// CHECK: yaddrw a0, a0, a1
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xb5,0x16]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST3:]] YADDRW{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X11>>
|
|
ypermc a0, a0, a0
|
|
// CHECK: ypermc a0, a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x26]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST4:]] YPERMC{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>>
|
|
ymv a0, a0
|
|
// CHECK: ymv a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x05,0x06]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST5:]] YMV{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
//# 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: # <MCInst #[[#MCINST6:]] ADDI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:0>>
|
|
packy a0, a0, a0
|
|
// CHECK: packy a0, a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x02]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST7:]] PACKY{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>>
|
|
yhiw a0, a0, a0
|
|
// CHECK: packy a0, a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x02]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST7:]] PACKY{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>>
|
|
ybndsw a0, a0, a0
|
|
// CHECK: ybndsw a0, a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x36]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST8:]] YBNDSW{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>>
|
|
ybndsrw a0, a0, a0
|
|
// CHECK: ybndsrw a0, a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x46]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST9:]] YBNDSRW{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>>
|
|
ybndswi a0, a0, 12
|
|
// CHECK: ybndswi a0, a0, 12
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x55,0xc5,0xe0]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:12>>
|
|
ybndswi a0, a0, 12
|
|
// CHECK: ybndswi a0, a0, 12
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x55,0xc5,0xe0]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:12>>
|
|
//# 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: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:1>>
|
|
ybndswi a0, a0, 255
|
|
// CHECK: ybndswi a0, a0, 255
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x55,0xf5,0xef]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:255>>
|
|
ybndswi a0, a0, 264
|
|
// CHECK: ybndswi a0, a0, 264
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x05,0xf1]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:264>>
|
|
ybndswi a0, a0, 504
|
|
// CHECK: ybndswi a0, a0, 504
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x55,0xf5,0xf1]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:504>>
|
|
ybndswi a0, a0, 512
|
|
// CHECK-ASM: ybndswi a0, a0, 512
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x05,0xf2]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:512>>
|
|
ybndswi a0, a0, 528
|
|
// CHECK-ASM: ybndswi a0, a0, 528
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x15,0xf2]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:528>>
|
|
ybndswi a0, a0, 2048
|
|
// CHECK-ASM: ybndswi a0, a0, 2048
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x05,0xf8]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:2048>>
|
|
ybndswi a0, a0, 4080
|
|
// CHECK-ASM: ybndswi a0, a0, 4080
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x55,0xf5,0xff]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:4080>>
|
|
ybndswi a0, a0, 4096
|
|
// CHECK: ybndswi a0, a0, 4096
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x55,0x05,0xe0]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST10:]] YBNDSWI{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Imm:4096>>
|
|
ysunseal a0, a0, a0
|
|
// CHECK: ysunseal a0, a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x0e]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST11:]] YSUNSEAL{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
ybld a0, a0, a0
|
|
// CHECK: ybld a0, a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x1e]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST12:]] YBLD{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
ybaser a0, a0
|
|
// CHECK: ybaser a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x05,0xf4]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST13:]] YBASER{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
ylenr a0, a0
|
|
// CHECK: ylenr a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x35,0xf4]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST14:]] YLENR{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
ytopr a0, a0
|
|
// CHECK: ytopr a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x25,0xf4]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST15:]] YTOPR{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
ytagr a0, a0
|
|
// CHECK: ytagr a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x45,0xf4]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST16:]] YTAGR{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
ypermr a0, a0
|
|
// CHECK: ypermr a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x15,0xf4]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST17:]] YPERMR{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
ytyper a0, a0
|
|
// CHECK: ytyper a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x55,0xf4]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST18:]] YTYPER{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
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: # <MCInst #[[#MCINST19:]] SRLIY{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-32-NEXT: # <MCOperand Imm:32>>
|
|
// CHECK-ASM-64-NEXT: # <MCOperand Imm:64>>
|
|
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: # <MCInst #[[#MCINST19:]] SRLIY{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-32-NEXT: # <MCOperand Imm:32>>
|
|
// CHECK-ASM-64-NEXT: # <MCOperand Imm:64>>
|
|
yeq a0, a0, a0
|
|
// CHECK: yeq a0, a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x0c]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST20:]] YEQ{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
yss a0, a0, a0
|
|
// CHECK: yss a0, a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0xa5,0x1c]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST21:]] YSS{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10_Y>>
|
|
yamask a0, a0
|
|
// CHECK: yamask a0, a0
|
|
// CHECK-ASM-SAME: # encoding: [0x7b,0x05,0x05,0xf0]
|
|
// CHECK-ASM-NEXT: # <MCInst #[[#MCINST22:]] YAMASK{{$}}
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>
|
|
// CHECK-ASM-NEXT: # <MCOperand Reg:X10>>
|