1// RUN: llvm-mc -triple arm -mattr=+dotprod -show-encoding < %s | FileCheck %s --check-prefix=CHECK 2// RUN: llvm-mc -triple arm -mcpu=cortex-a75 -show-encoding < %s | FileCheck %s --check-prefix=CHECK 3// RUN: llvm-mc -triple arm -mcpu=cortex-a55 -show-encoding < %s | FileCheck %s --check-prefix=CHECK 4 5// RUN: not llvm-mc -triple arm -mattr=-dotprod -show-encoding < %s 2> %t 6// RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s 7// RUN: not llvm-mc -triple arm -show-encoding < %s 2> %t 8// RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s 9// RUN: not llvm-mc -triple arm -mattr=+v8.1a -show-encoding < %s 2> %t 10// RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s 11// RUN: not llvm-mc -triple arm -mattr=+v8.2a -show-encoding < %s 2> %t 12// RUN: FileCheck --check-prefix=CHECK-NO-DOTPROD < %t %s 13 14vudot.u8 d0, d1, d2 15vsdot.s8 d0, d1, d2 16vudot.u8 q0, q1, q4 17vsdot.s8 q0, q1, q4 18vudot.u8 d0, d1, d2[0] 19vsdot.s8 d0, d1, d2[1] 20vudot.u8 q0, q1, d4[0] 21vsdot.s8 q0, q1, d4[1] 22 23// CHECK: vudot.u8 d0, d1, d2 @ encoding: [0x12,0x0d,0x21,0xfc] 24// CHECK: vsdot.s8 d0, d1, d2 @ encoding: [0x02,0x0d,0x21,0xfc] 25// CHECK: vudot.u8 q0, q1, q4 @ encoding: [0x58,0x0d,0x22,0xfc] 26// CHECK: vsdot.s8 q0, q1, q4 @ encoding: [0x48,0x0d,0x22,0xfc] 27// CHECK: vudot.u8 d0, d1, d2[0] @ encoding: [0x12,0x0d,0x21,0xfe] 28// CHECK: vsdot.s8 d0, d1, d2[1] @ encoding: [0x22,0x0d,0x21,0xfe] 29// CHECK: vudot.u8 q0, q1, d4[0] @ encoding: [0x54,0x0d,0x22,0xfe] 30// CHECK: vsdot.s8 q0, q1, d4[1] @ encoding: [0x64,0x0d,0x22,0xfe] 31 32// CHECK-NO-DOTPROD: error: instruction requires: dotprod 33// CHECK-NO-DOTPROD: error: instruction requires: dotprod 34// CHECK-NO-DOTPROD: error: instruction requires: dotprod 35// CHECK-NO-DOTPROD: error: instruction requires: dotprod 36// CHECK-NO-DOTPROD: error: instruction requires: dotprod 37// CHECK-NO-DOTPROD: error: instruction requires: dotprod 38// CHECK-NO-DOTPROD: error: instruction requires: dotprod 39// CHECK-NO-DOTPROD: error: instruction requires: dotprod 40