# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+dotprod --disassemble < %s | FileCheck %s
# RUN: llvm-mc -triple aarch64-none-linux-gnu -mcpu=cortex-a75 --disassemble < %s | FileCheck %s
# RUN: llvm-mc -triple aarch64-none-linux-gnu -mcpu=cortex-a55 --disassemble < %s | FileCheck %s
# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=-dotprod --disassemble < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR

0x20,0x94,0x82,0x2e
0x20,0x94,0x82,0x0e
0x20,0x94,0x82,0x6e
0x20,0x94,0x82,0x4e
0x20,0xe0,0x82,0x2f
0x20,0xe0,0xa2,0x0f
0x20,0xe8,0x82,0x6f
0x20,0xe8,0xa2,0x4f

#CHECK:  udot  v0.2s, v1.8b, v2.8b
#CHECK:  sdot  v0.2s, v1.8b, v2.8b
#CHECK:  udot  v0.4s, v1.16b, v2.16b
#CHECK:  sdot  v0.4s, v1.16b, v2.16b
#CHECK:  udot  v0.2s, v1.8b, v2.4b[0]
#CHECK:  sdot  v0.2s, v1.8b, v2.4b[1]
#CHECK:  udot  v0.4s, v1.16b, v2.4b[2]
#CHECK:  sdot  v0.4s, v1.16b, v2.4b[3]

# CHECK-ERROR:  invalid instruction encoding
# CHECK-ERROR:  invalid instruction encoding
# CHECK-ERROR:  invalid instruction encoding
# CHECK-ERROR:  invalid instruction encoding
# CHECK-ERROR:  invalid instruction encoding
# CHECK-ERROR:  invalid instruction encoding
# CHECK-ERROR:  invalid instruction encoding
# CHECK-ERROR:  invalid instruction encoding
