1# RUN: not llvm-mc -triple amdgcn < %s 2>&1 | FileCheck %s 2 3# This tests the mnemonic spell checker. 4 5# First check what happens when an instruction is omitted: 6 7v2, v4, v6 8 9# CHECK: unknown token in expression 10# CHECK-NEXT: v2, v4, v6 11# CHECK-NEXT: ^ 12 13# CHECK: error: failed parsing operand 14# CHECK-NEXT: v2, v4, v6 15# CHECK-NEXT: ^ 16 17# We don't want to see a suggestion here; the edit distance is too large to 18# give sensible suggestions: 19 20aaaaaaaaaaaaaaa v1, v2, v3 21 22# CHECK: error: invalid instruction 23# CHECK-NEXT: aaaaaaaaaaaaaaa v1, v2, v3 24# CHECK-NEXT: ^ 25 26# Check that we get one suggestion: 'dsc_write_src2_b64' is 1 edit away, i.e. an deletion. 27 28dsc_write_src2_b64 v1, v2, v3 29 30# CHECK: error: invalid instruction, did you mean: ds_write_src2_b64? 31# CHECK-NEXT: dsc_write_src2_b64 v1, v2, v3 32# CHECK-NEXT: ^ 33 34# Check edit distance 1 and 2, just insertions: 35 36s_mov_b v1, v2 37 38# CHECK: error: invalid instruction, did you mean: s_mov_b32, s_mov_b64? 39# CHECK-NEXT: s_mov_b v1, v2 40# CHECK-NEXT: ^ 41 42# Check an instruction that is 2 edits away, and also has a lot of candidates: 43 44s_load_dwordx v1, v2, v3 45 46# CHECK: error: invalid instruction, did you mean: s_load_dword, s_load_dwordx16, s_load_dwordx2, s_load_dwordx4, s_load_dwordx8? 47# CHECK-NEXT: s_load_dwordx v1, v2, v3 48# CHECK-NEXT: ^ 49