152 lines · plain
1// RUN: not llvm-mc -triple=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s2 3s_mov_b32 s1, s 14// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction5 6s_mov_b32 s1, s[0 17// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket8 9s_mov_b32 s1, s[0:0 110// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket11 12s_mov_b32 s1, [s[0 113// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket14 15s_mov_b32 s1, [s[0:1] 116// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a single 32-bit register17 18s_mov_b32 s1, [s0, 119// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a register or a list of registers20 21s_mov_b32 s1, s999 122// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: register index is out of range23 24s_mov_b32 s1, s[1:2] 125// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register alignment26 27s_mov_b32 s1, s[0:2] 128// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction29 30s_mov_b32 s1, xnack_mask_lo 131// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: xnack_mask_lo register not available on this GPU32 33s_mov_b32 s1, s s034// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction35 36s_mov_b32 s1, s[0 s037// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket38 39s_mov_b32 s1, s[0:0 s040// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket41 42s_mov_b32 s1, [s[0 s043// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket44 45s_mov_b32 s1, [s[0:1] s046// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a single 32-bit register47 48s_mov_b32 s1, [s0, s049// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must have consecutive indices50 51s_mov_b32 s1, s999 s052// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: register index is out of range53 54s_mov_b32 s1, s[1:2] s055// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register alignment56 57s_mov_b32 s1, s[0:2] vcc_lo58// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction59 60s_mov_b32 s1, xnack_mask_lo s161// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: xnack_mask_lo register not available on this GPU62 63exp mrt0 v1, v2, v3, v4000 off64// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: register index is out of range65 66v_add_f64 v[0:1], v[0:1], v[0xF00000001:0x2]67// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register index68 69v_add_f64 v[0:1], v[0:1], v[0x1:0xF00000002]70// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register index71 72s_mov_b32 s1, s[0:-1]73// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register index74 75s_mov_b64 s[10:11], [exec_lo,vcc_hi]76// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: register does not fit in the list77 78s_mov_b64 s[10:11], [exec_hi,exec_lo]79// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: register does not fit in the list80 81s_mov_b64 s[10:11], [exec_lo,exec_lo]82// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: register does not fit in the list83 84s_mov_b64 s[10:11], [exec,exec_lo]85// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: register does not fit in the list86 87s_mov_b64 s[10:11], [exec_lo,exec]88// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: register does not fit in the list89 90s_mov_b64 s[10:11], [exec_lo,s0]91// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must be of the same kind92 93s_mov_b64 s[10:11], [s0,exec_lo]94// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must be of the same kind95 96s_mov_b64 s[10:11], [s0,exec]97// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must be of the same kind98 99s_mov_b64 s[10:11], [s0,v1]100// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must be of the same kind101 102s_mov_b64 s[10:11], [v0,s1]103// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must be of the same kind104 105s_mov_b64 s[10:11], [s0,s0]106// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must have consecutive indices107 108s_mov_b64 s[10:11], [s0,s2]109// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must have consecutive indices110 111s_mov_b64 s[10:11], [s2,s1]112// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must have consecutive indices113 114s_mov_b64 s[10:11], [a0,a2]115// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must have consecutive indices116 117s_mov_b64 s[10:11], [a0,v1]118// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must be of the same kind119 120s_mov_b64 s[10:11], [s121// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: missing register index122 123s_mov_b64 s[10:11], s[1:0]124// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: first register index should not exceed second index125 126s_mov_b64 s[10:11], [x0,s1]127// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register name128 129s_mov_b64 s[10:11], [s,s1]130// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: missing register index131 132s_mov_b64 s[10:11], [s01,s1]133// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must have consecutive indices134 135s_mov_b64 s[10:11], [s0x]136// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register index137 138s_mov_b64 s[10:11], [s[0:1],s[2:3]]139// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a single 32-bit register140 141s_mov_b64 s[10:11], [s0,s[2:3]]142// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a single 32-bit register143 144s_mov_b64 s[10:11], [s0145// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma or a closing square bracket146 147s_mov_b64 s[10:11], [s0,s1148// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma or a closing square bracket149 150s_mov_b64 s[10:11], s[1:0]151// NOVI: :[[@LINE-1]]:{{[0-9]+}}: error: first register index should not exceed second index152