xref: /llvm-project/llvm/test/MC/AMDGPU/gfx11_asm_err.s (revision 1004496451877c28e005d3016ef22921fad39132)
1252c4235SFangrui Song// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 %s 2>&1 | FileCheck --check-prefix=GFX11 --implicit-check-not=error: %s
29d1eeefbSDmitry Preobrazhensky
39d1eeefbSDmitry Preobrazhenskys_delay_alu
47ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction
59d1eeefbSDmitry Preobrazhensky
69d1eeefbSDmitry Preobrazhenskys_delay_alu instid9(VALU_DEP_1)
77ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid field name instid9
89d1eeefbSDmitry Preobrazhensky
99d1eeefbSDmitry Preobrazhenskys_delay_alu instid0(VALU_DEP_9)
107ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid value name VALU_DEP_9
119d1eeefbSDmitry Preobrazhensky
129d1eeefbSDmitry Preobrazhenskys_delay_alu instid0(1)
137ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: expected a value name
149d1eeefbSDmitry Preobrazhensky
159d1eeefbSDmitry Preobrazhenskys_delay_alu instid0(VALU_DEP_9|)
167ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: expected a right parenthesis
179d1eeefbSDmitry Preobrazhensky
189d1eeefbSDmitry Preobrazhenskys_delay_alu instid0(VALU_DEP_1) | (SALU_CYCLE_1)
197ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: expected a field name
209d1eeefbSDmitry Preobrazhensky
219d1eeefbSDmitry Preobrazhenskys_delay_alu instid0(VALU_DEP_1) | SALU_CYCLE_1)
227ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: expected a left parenthesis
239d1eeefbSDmitry Preobrazhensky
249d1eeefbSDmitry Preobrazhenskylds_direct_load v15 wait_vdst:16
25*e5c92c51SIvan Kosarev// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid wait_vdst value.
269d1eeefbSDmitry Preobrazhensky
279d1eeefbSDmitry Preobrazhenskylds_direct_load v15 wait_vdst
287ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
299d1eeefbSDmitry Preobrazhensky
309d1eeefbSDmitry Preobrazhenskyv_interp_p10_f32 v0, v1, v2, v3 wait_exp:8
31*e5c92c51SIvan Kosarev// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid wait_exp value.
329d1eeefbSDmitry Preobrazhensky
339d1eeefbSDmitry Preobrazhenskyv_interp_p2_f32 v0, -v1, v2, v3 wait_exp
347ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
359d1eeefbSDmitry Preobrazhensky
369d1eeefbSDmitry Preobrazhenskyglobal_atomic_cmpswap_x2 v[1:4], v3, v[5:8], off offset:2047 glc
377ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
389d1eeefbSDmitry Preobrazhensky
39b59b8d41SJay Foad// s_waitcnt_depctr is called s_wait_alu on GFX12, but its semantics and
40b59b8d41SJay Foad// encoding are identical. Even so, the new name should be rejected on GFX11
41b59b8d41SJay Foads_wait_alu 0xfffe
42b59b8d41SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU
43b59b8d41SJay Foad
449d1eeefbSDmitry Preobrazhenskyv_cubesc_f32_e64_dpp v5, v1, v2, 12345678 row_shr:4 row_mask:0xf bank_mask:0xf
457ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
469d1eeefbSDmitry Preobrazhensky
479d1eeefbSDmitry Preobrazhenskyv_add3_u32_e64_dpp v5, v1, v2, 49812340 dpp8:[7,6,5,4,3,2,1,0]
487ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
499d1eeefbSDmitry Preobrazhensky
509d1eeefbSDmitry Preobrazhenskyv_add3_u32_e64_dpp v5, v1, s1, v0 dpp8:[7,6,5,4,3,2,1,0]
517ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
529d1eeefbSDmitry Preobrazhensky
532cd2445cSMirko Brkušaninv_add3_u32_e64_dpp v5, v1, 42, v0 dpp8:[7,6,5,4,3,2,1,0]
546a13bbf9SJoe Nash// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 immediate operand invalid for instruction
552cd2445cSMirko Brkušanin
562cd2445cSMirko Brkušaninv_add3_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf
572cd2445cSMirko Brkušanin// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
582cd2445cSMirko Brkušanin
592cd2445cSMirko Brkušaninv_add3_u32_e64_dpp v5, v1, 42, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf
606a13bbf9SJoe Nash// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 immediate operand invalid for instruction
612cd2445cSMirko Brkušanin
629d1eeefbSDmitry Preobrazhenskyv_cvt_f32_i32_e64_dpp v5, s1 dpp8:[7,6,5,4,3,2,1,0]
637ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
649d1eeefbSDmitry Preobrazhensky
659d1eeefbSDmitry Preobrazhenskyv_cvt_f32_i32_e64_dpp v5, s1 row_shl:15 row_mask:0xf bank_mask:0xf
667ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
679d1eeefbSDmitry Preobrazhensky
689d1eeefbSDmitry Preobrazhenskyv_cvt_f16_u16_e64_dpp v5, s1 dpp8:[7,6,5,4,3,2,1,0]
697ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
709d1eeefbSDmitry Preobrazhensky
719d1eeefbSDmitry Preobrazhenskyv_cvt_f16_u16_e64_dpp v5, s1 row_shl:1 row_mask:0xf bank_mask:0xf
727ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
739d1eeefbSDmitry Preobrazhensky
749d1eeefbSDmitry Preobrazhensky; disallow space between colons
759d1eeefbSDmitry Preobrazhenskyv_dual_mul_f32 v0, v0, v2 : : v_dual_mul_f32 v1, v1, v3
767ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression
779d1eeefbSDmitry Preobrazhensky
789d1eeefbSDmitry Preobrazhenskyv_dot4c_i32_i8 v0, v1, v2
799d1eeefbSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU
809d1eeefbSDmitry Preobrazhensky
819d1eeefbSDmitry Preobrazhenskyv_cmp_class_f16_e64_dpp s105, s2, v2 row_ror:15
829d1eeefbSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
839d1eeefbSDmitry Preobrazhensky
849d1eeefbSDmitry Preobrazhenskyv_cmpx_class_f32_e64_dpp s1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1
859d1eeefbSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
869d1eeefbSDmitry Preobrazhensky
879d1eeefbSDmitry Preobrazhenskyv_fma_mix_f32_e64_dpp v5, s1, v3, v4 quad_perm:[3,2,1,0]
887ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
899d1eeefbSDmitry Preobrazhensky
909d1eeefbSDmitry Preobrazhenskyv_fma_mix_f32_e64_dpp v5, v1, s3, v4 quad_perm:[3,2,1,0]
917ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
929d1eeefbSDmitry Preobrazhensky
939d1eeefbSDmitry Preobrazhenskyv_fma_mix_f32_e64_dpp v5, s1, v3, v4 dpp8:[7,6,5,4,3,2,1,0]
947ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
959d1eeefbSDmitry Preobrazhensky
969d1eeefbSDmitry Preobrazhenskyv_fma_mix_f32_e64_dpp v5, v1, s3, v4 dpp8:[7,6,5,4,3,2,1,0]
977ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
989d1eeefbSDmitry Preobrazhensky
999d1eeefbSDmitry Preobrazhenskyv_fma_mixhi_f16_e64_dpp v5, v1, 0, v4 quad_perm:[3,2,1,0]
1007ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
1019d1eeefbSDmitry Preobrazhensky
1029d1eeefbSDmitry Preobrazhenskyv_fma_mixlo_f16_e64_dpp v5, v1, 1, v4 dpp8:[7,6,5,4,3,2,1,0]
1037ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
104d55594bbSIvan Kosarev
105d55594bbSIvan Kosarevbuffer_store_d16_hi_format_x v[1:2], off, s[12:15], s4 offset:4095 glc slc dlc tfe
1067ab83a70SJay Foad// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: TFE modifier has no meaning for store instructions
107f2d589eaSDmitry Preobrazhensky
108f2d589eaSDmitry Preobrazhenskyv_fmac_f16_e64_dpp v5, -16, v3 dpp8:[7,6,5,4,3,2,1,0]
109f2d589eaSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
110f2d589eaSDmitry Preobrazhensky
111f2d589eaSDmitry Preobrazhenskyv_fmac_f16_e64_dpp v5, v2, s3 dpp8:[7,6,5,4,3,2,1,0]
112f2d589eaSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
113f2d589eaSDmitry Preobrazhensky
114f2d589eaSDmitry Preobrazhenskyv_fmac_f16_e64_dpp v5, v2, 0x1234 dpp8:[7,6,5,4,3,2,1,0]
115f2d589eaSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
116f2d589eaSDmitry Preobrazhensky
117f2d589eaSDmitry Preobrazhenskyv_fmac_f16_e64_dpp v5, 0x1234, v3 quad_perm:[3,2,1,0]
118f2d589eaSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
119f2d589eaSDmitry Preobrazhensky
120f2d589eaSDmitry Preobrazhenskyv_fmac_f16_e64_dpp v5, s2, v3 quad_perm:[3,2,1,0]
121f2d589eaSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
122f2d589eaSDmitry Preobrazhensky
123f2d589eaSDmitry Preobrazhenskyv_fmac_f16_e64_dpp v5, v2, 1.0 quad_perm:[3,2,1,0]
1246a13bbf9SJoe Nash// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 immediate operand invalid for instruction
125f2d589eaSDmitry Preobrazhensky
126f2d589eaSDmitry Preobrazhenskyv_fmac_f32_e64_dpp v5, s2, v3 dpp8:[7,6,5,4,3,2,1,0]
127f2d589eaSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
128f2d589eaSDmitry Preobrazhensky
129f2d589eaSDmitry Preobrazhenskyv_fmac_f32_e64_dpp v5, 0x1234, v3 dpp8:[7,6,5,4,3,2,1,0]
130f2d589eaSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
131f2d589eaSDmitry Preobrazhensky
132f2d589eaSDmitry Preobrazhenskyv_fmac_f32_e64_dpp v5, v2, 1 dpp8:[7,6,5,4,3,2,1,0]
1336a13bbf9SJoe Nash// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: src1 immediate operand invalid for instruction
134f2d589eaSDmitry Preobrazhensky
135f2d589eaSDmitry Preobrazhenskyv_fmac_f32_e64_dpp v5, -1.0, v3 quad_perm:[3,2,1,0]
136f2d589eaSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
137f2d589eaSDmitry Preobrazhensky
138f2d589eaSDmitry Preobrazhenskyv_fmac_f32_e64_dpp v5, v2, s3 quad_perm:[3,2,1,0]
139f2d589eaSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
140f2d589eaSDmitry Preobrazhensky
141f2d589eaSDmitry Preobrazhenskyv_fmac_f32_e64_dpp v5, v2, 0x1234 quad_perm:[3,2,1,0]
142f2d589eaSDmitry Preobrazhensky// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
143905fa15dSIvan Kosarev
144905fa15dSIvan Kosarevs_load_dword s1, s[2:3], s0 0x1
145905fa15dSIvan Kosarev// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
14647615ddcSMirko Brkušanin
14747615ddcSMirko Brkušaninscratch_store_b128 off, v[2:5], s0 offset:8000000
14847615ddcSMirko Brkušanin// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 13-bit signed offset
14947615ddcSMirko Brkušanin
15047615ddcSMirko Brkušaninflat_atomic_add_f32 v1, v[0:1], v2 offset:-1
15147615ddcSMirko Brkušanin// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 12-bit unsigned offset
152c1a6974dSMirko Brkušanin
153c1a6974dSMirko Brkušanins_load_b96 s[20:22], s[2:3], s0
154c1a6974dSMirko Brkušanin// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU
155c1a6974dSMirko Brkušanin
156c1a6974dSMirko Brkušanins_buffer_load_b96 s[20:22], s[4:7], s0
157c1a6974dSMirko Brkušanin// GFX11: :[[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU
158