llvm/llvm/test/MC/AArch64/FP8_SVE2/fcvt-diagnostics.s

// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+fp8 2>&1 < %s | FileCheck %s
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+fp8 2>&1 < %s | FileCheck %s

// --------------------------------------------------------------------------//

f1cvt z0.h, z0.h
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: f1cvt z0.h, z0.h
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

f1cvt z0.b, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: f1cvt z0.b, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

f1cvt z32.h, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: f1cvt z32.h, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:


f2cvt z0.h, z0.h
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: f2cvt z0.h, z0.h
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

f2cvt z0.b, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: f2cvt z0.b, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

f2cvt z32.h, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: f2cvt z32.h, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:


bf1cvt z0.h, z0.h
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: bf1cvt z0.h, z0.h
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

bf1cvt z0.b, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: bf1cvt z0.b, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

bf1cvt z32.h, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: bf1cvt z32.h, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:


bf2cvt z0.h, z0.h
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: bf2cvt z0.h, z0.h
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

bf2cvt z0.b, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: bf2cvt z0.b, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

bf2cvt z32.h, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: bf2cvt z32.h, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:


f1cvtlt z0.h, z0.h
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: f1cvtlt z0.h, z0.h
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

f1cvtlt z0.b, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: f1cvtlt z0.b, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

f1cvtlt z32.h, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: f1cvtlt z32.h, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:


f2cvtlt z0.h, z0.h
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: f2cvtlt z0.h, z0.h
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

f2cvtlt z0.b, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: f2cvtlt z0.b, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

f2cvtlt z32.h, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: f2cvtlt z32.h, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:


bf1cvtlt z0.h, z0.h
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: bf1cvtlt z0.h, z0.h
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

bf1cvtlt z0.b, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: bf1cvtlt z0.b, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

bf1cvtlt z32.h, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: bf1cvtlt z32.h, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:


bf2cvtlt z0.h, z0.h
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: bf2cvtlt z0.h, z0.h
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

bf2cvtlt z0.b, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
// CHECK-NEXT: bf2cvtlt z0.b, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

bf2cvtlt z32.h, z0.b
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: bf2cvtlt z32.h, z0.b
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: