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
189 lines
8.7 KiB
ArmAsm
189 lines
8.7 KiB
ArmAsm
// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1250 -filetype=null %s 2>&1 | FileCheck --check-prefixes=GFX1250-ERR --implicit-check-not=error: -strict-whitespace %s
|
|
|
|
s_load_b32 s4, s[2:3], 10 th:TH_LOAD_NT th:TH_LOAD_NT
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
|
// GFX1250-ERR: s_load_b32 s4, s[2:3], 10 th:TH_LOAD_NT th:TH_LOAD_NT
|
|
// GFX1250-ERR: ^
|
|
|
|
s_load_b32 s4, s[2:3], 10 scope:SCOPE_SE scope:SCOPE_SE
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
|
// GFX1250-ERR: s_load_b32 s4, s[2:3], 10 scope:SCOPE_SE scope:SCOPE_SE
|
|
// GFX1250-ERR: ^
|
|
|
|
s_load_b32 s4, s[2:3], 10 nv nv
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
|
// GFX1250-ERR: s_load_b32 s4, s[2:3], 10 nv nv
|
|
// GFX1250-ERR: ^
|
|
|
|
v_mov_b64 v[4:5], v[2:3] quad_perm:[1,1,1,1]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_mov_b64 v[4:5], v[2:3] quad_perm:[1,1,1,1]
|
|
// GFX1250-ERR: ^
|
|
|
|
v_mov_b64 v[4:5], v[2:3] dpp8:[7,6,5,4,3,2,1,0]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_mov_b64 v[4:5], v[2:3] dpp8:[7,6,5,4,3,2,1,0]
|
|
// GFX1250-ERR: ^
|
|
|
|
// For v_dual_cndmask_b32 use of the explicit src2 forces VOPD3 form even if it is vcc_lo.
|
|
// If src2 is omitted then it forces VOPD form. As a result a proper form of the instruction
|
|
// has to be used if the other component of the dual instruction cannot be used if that
|
|
// encoding.
|
|
|
|
v_dual_cndmask_b32 v2, v4, v1 :: v_dual_fma_f32 v7, v1, v2, v3
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid VOPDY instruction
|
|
// GFX1250-ERR: v_dual_cndmask_b32 v2, v4, v1 :: v_dual_fma_f32 v7, v1, v2, v3
|
|
// GFX1250-ERR: ^
|
|
|
|
v_dual_fma_f32 v7, v1, v2, v3 :: v_dual_cndmask_b32 v2, v4, v1
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction
|
|
// GFX1250-ERR: v_dual_fma_f32 v7, v1, v2, v3 :: v_dual_cndmask_b32 v2, v4, v1
|
|
// GFX1250-ERR: ^
|
|
|
|
v_dual_cndmask_b32 v7, v1, v2 :: v_dual_cndmask_b32 v2, v4, v1, vcc_lo
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
|
// GFX1250-ERR: v_dual_cndmask_b32 v7, v1, v2 :: v_dual_cndmask_b32 v2, v4, v1, vcc_lo
|
|
// GFX1250-ERR: ^
|
|
|
|
v_dual_cndmask_b32 v7, v1, v2, vcc_lo :: v_dual_cndmask_b32 v2, v4, v1
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction
|
|
// GFX1250-ERR: v_dual_cndmask_b32 v7, v1, v2, vcc_lo :: v_dual_cndmask_b32 v2, v4, v1
|
|
// GFX1250-ERR: ^
|
|
|
|
// Check for unique 64-bit literal
|
|
|
|
v_mov_b64 v[4:5], v[2:3] quad_perm:[1,1,1,1]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_mov_b64 v[4:5], v[2:3] quad_perm:[1,1,1,1]
|
|
// GFX1250-ERR: ^
|
|
|
|
v_mov_b64 v[4:5], v[2:3] dpp8:[7,6,5,4,3,2,1,0]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_mov_b64 v[4:5], v[2:3] dpp8:[7,6,5,4,3,2,1,0]
|
|
// GFX1250-ERR: ^
|
|
|
|
s_andn2_b64 s[2:3], 0x10abcdef12345678, 0xabcdef12345678
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
|
|
// GFX1250-ERR: s_andn2_b64 s[2:3], 0x10abcdef12345678, 0xabcdef12345678
|
|
// GFX1250-ERR: ^
|
|
|
|
s_bfe_u64 s[2:3], 0x10abcdef12345678, 100
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
|
|
// GFX1250-ERR: s_bfe_u64 s[2:3], 0x10abcdef12345678, 100
|
|
// GFX1250-ERR: ^
|
|
|
|
s_call_b64 s[2:3], 0x10abcdef12345678
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 16-bit signed jump offset
|
|
// GFX1250-ERR: s_call_b64 s[2:3], 0x10abcdef12345678
|
|
// GFX1250-ERR: ^
|
|
|
|
// VOP3 instructions cannot use 64-bit literals
|
|
|
|
v_ceil_f64_e64 v[254:255], 0x10abcdef12345678
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
|
// GFX1250-ERR: v_ceil_f64_e64 v[254:255], 0x10abcdef12345678
|
|
// GFX1250-ERR: ^
|
|
|
|
v_add_f64_e64 v[254:255], 0x10abcdef12345678, v[254:255]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
|
// GFX1250-ERR: v_add_f64_e64 v[254:255], 0x10abcdef12345678, v[254:255]
|
|
// GFX1250-ERR: ^
|
|
|
|
v_cmp_lt_f64_e64 vcc_lo, 0x10abcdef12345678, v[254:255]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
|
// GFX1250-ERR: v_cmp_lt_f64_e64 vcc_lo, 0x10abcdef12345678, v[254:255]
|
|
// GFX1250-ERR: ^
|
|
|
|
v_fma_f64 v[0:1], 0x10abcdef12345678, v[2:3], v[4:5]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
|
// GFX1250-ERR: v_fma_f64 v[0:1], 0x10abcdef12345678, v[2:3], v[4:5]
|
|
// GFX1250-ERR: ^
|
|
|
|
// Do not allow 64-bit literals for 32-bit operands. This may be possible to
|
|
// encode but not practically useful and can be misleading.
|
|
|
|
s_bfe_u64 s[2:3], 0x10abcdef12345678, 0x10abcdef12345678
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
|
// GFX1250-ERR: s_bfe_u64 s[2:3], 0x10abcdef12345678, 0x10abcdef12345678
|
|
// GFX1250-ERR: ^
|
|
|
|
v_add_f32 v1, 0x12345678abcdef00, v2
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
|
|
// GFX1250-ERR: v_add_f32 v1, 0x12345678abcdef00, v2
|
|
// GFX1250-ERR: ^
|
|
|
|
v_ceil_f64 v[2:3], lit64(v[0:1])
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: expected immediate with lit modifier
|
|
// GFX1250-ERR: v_ceil_f64 v[2:3], lit64(v[0:1]
|
|
// GFX1250-ERR: ^
|
|
|
|
v_ceil_f64 v[2:3], lit64(123
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: expected closing parentheses
|
|
// GFX1250-ERR: v_ceil_f64 v[2:3], lit64(123
|
|
// GFX1250-ERR: ^
|
|
|
|
v_fmaak_f64 v[4:5], lit(lit64(0x7e8)), v[8:9], lit64(0x7e8)
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_fmaak_f64 v[4:5], lit(lit64(0x7e8)), v[8:9], lit64(0x7e8)
|
|
// GFX1250-ERR: ^
|
|
|
|
v_fmaak_f64 v[4:5], lit64(lit64(0x7e8)), v[8:9], lit64(0x7e8)
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_fmaak_f64 v[4:5], lit64(lit64(0x7e8)), v[8:9], lit64(0x7e8)
|
|
// GFX1250-ERR: ^
|
|
|
|
v_fmaak_f64 v[4:5], lit64(lit(0x7e8)), v[8:9], lit64(0x7e8)
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_fmaak_f64 v[4:5], lit64(lit(0x7e8)), v[8:9], lit64(0x7e8)
|
|
// GFX1250-ERR: ^
|
|
|
|
v_fmamk_f64 v[4:5], 123.0, 123.1, v[6:7]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
|
|
// GFX1250-ERR: v_fmamk_f64 v[4:5], 123.0, 123.1, v[6:7]
|
|
// GFX1250-ERR: ^
|
|
|
|
v_fmamk_f64 v[4:5], 0x405ec00000000001, 123.0, v[6:7]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
|
|
// GFX1250-ERR: v_fmamk_f64 v[4:5], 0x405ec00000000001, 123.0, v[6:7]
|
|
// GFX1250-ERR: ^
|
|
|
|
v_fmaak_f64 v[4:5], 123.1, v[6:7], 123.0
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
|
|
// GFX1250-ERR: v_fmaak_f64 v[4:5], 123.1, v[6:7], 123.0
|
|
// GFX1250-ERR: ^
|
|
|
|
v_fmaak_f64 v[4:5], 123.0, v[6:7], 0x405ec00000000001
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
|
|
// GFX1250-ERR: v_fmaak_f64 v[4:5], 123.0, v[6:7], 0x405ec00000000001
|
|
// GFX1250-ERR: ^
|
|
|
|
v_fmaak_f64 v[4:5], 0x7e8, v[8:9], lit64(0x7e8)
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
|
|
// GFX1250-ERR: v_fmaak_f64 v[4:5], 0x7e8, v[8:9], lit64(0x7e8)
|
|
// GFX1250-ERR: ^
|
|
|
|
v_pk_add_min_i16 v10, |v1|, v2, v3
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_pk_add_min_i16 v10, |v1|, v2, v3
|
|
// GFX1250-ERR: ^
|
|
|
|
v_pk_add_min_i16 v10, -v1, v2, v3
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_pk_add_min_i16 v10, -v1, v2, v3
|
|
// GFX1250-ERR: ^
|
|
|
|
v_pk_add_min_i16 v10, sext(v1), v2, v3
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_pk_add_min_i16 v10, sext(v1), v2, v3
|
|
// GFX1250-ERR: ^
|
|
|
|
v_pk_add_min_i16 v10, v1, v2, v3 neg_lo:[1,0,0]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_pk_add_min_i16 v10, v1, v2, v3 neg_lo:[1,0,0]
|
|
// GFX1250-ERR: ^
|
|
|
|
v_pk_add_min_i16 v10, v1, v2, v3 neg_hi:[1,0,0]
|
|
// GFX1250-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
|
|
// GFX1250-ERR: v_pk_add_min_i16 v10, v1, v2, v3 neg_hi:[1,0,0]
|
|
// GFX1250-ERR: ^
|