1dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// RUN: llvm-mc -triple=arm64 -mattr=+neon -show-encoding < %s | FileCheck %s 2beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 3beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// Check that the assembler can handle the documented syntax for AArch64 4beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 5beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu//------------------------------------------------------------------------------ 6beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// Instructions across vector registers 7beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu//------------------------------------------------------------------------------ 8beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 9beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu saddlv h0, v1.8b 10beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu saddlv h0, v1.16b 11beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu saddlv s0, v1.4h 12beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu saddlv s0, v1.8h 13beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu saddlv d0, v1.4s 14beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 15beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: saddlv h0, v1.8b // encoding: [0x20,0x38,0x30,0x0e] 16beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: saddlv h0, v1.16b // encoding: [0x20,0x38,0x30,0x4e] 17beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: saddlv s0, v1.4h // encoding: [0x20,0x38,0x70,0x0e] 18beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: saddlv s0, v1.8h // encoding: [0x20,0x38,0x70,0x4e] 19beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: saddlv d0, v1.4s // encoding: [0x20,0x38,0xb0,0x4e] 20beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 21beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu uaddlv h0, v1.8b 22beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu uaddlv h0, v1.16b 23beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu uaddlv s0, v1.4h 24beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu uaddlv s0, v1.8h 25beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu uaddlv d0, v1.4s 26beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 27beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: uaddlv h0, v1.8b // encoding: [0x20,0x38,0x30,0x2e] 28beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: uaddlv h0, v1.16b // encoding: [0x20,0x38,0x30,0x6e] 29beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: uaddlv s0, v1.4h // encoding: [0x20,0x38,0x70,0x2e] 30beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: uaddlv s0, v1.8h // encoding: [0x20,0x38,0x70,0x6e] 31beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: uaddlv d0, v1.4s // encoding: [0x20,0x38,0xb0,0x6e] 32beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 33beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu smaxv b0, v1.8b 34beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu smaxv b0, v1.16b 35beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu smaxv h0, v1.4h 36beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu smaxv h0, v1.8h 37beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu smaxv s0, v1.4s 38beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 39beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: smaxv b0, v1.8b // encoding: [0x20,0xa8,0x30,0x0e] 40beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: smaxv b0, v1.16b // encoding: [0x20,0xa8,0x30,0x4e] 41beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: smaxv h0, v1.4h // encoding: [0x20,0xa8,0x70,0x0e] 42beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: smaxv h0, v1.8h // encoding: [0x20,0xa8,0x70,0x4e] 43beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: smaxv s0, v1.4s // encoding: [0x20,0xa8,0xb0,0x4e] 44beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 45beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu sminv b0, v1.8b 46beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu sminv b0, v1.16b 47beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu sminv h0, v1.4h 48beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu sminv h0, v1.8h 49beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu sminv s0, v1.4s 50beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 51beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: sminv b0, v1.8b // encoding: [0x20,0xa8,0x31,0x0e] 52beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: sminv b0, v1.16b // encoding: [0x20,0xa8,0x31,0x4e] 53beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: sminv h0, v1.4h // encoding: [0x20,0xa8,0x71,0x0e] 54beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: sminv h0, v1.8h // encoding: [0x20,0xa8,0x71,0x4e] 55beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: sminv s0, v1.4s // encoding: [0x20,0xa8,0xb1,0x4e] 56beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 57beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu umaxv b0, v1.8b 58beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu umaxv b0, v1.16b 59beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu umaxv h0, v1.4h 60beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu umaxv h0, v1.8h 61beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu umaxv s0, v1.4s 62beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 63beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: umaxv b0, v1.8b // encoding: [0x20,0xa8,0x30,0x2e] 64beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: umaxv b0, v1.16b // encoding: [0x20,0xa8,0x30,0x6e] 65beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: umaxv h0, v1.4h // encoding: [0x20,0xa8,0x70,0x2e] 66beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: umaxv h0, v1.8h // encoding: [0x20,0xa8,0x70,0x6e] 67beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: umaxv s0, v1.4s // encoding: [0x20,0xa8,0xb0,0x6e] 68beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 69beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu uminv b0, v1.8b 70beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu uminv b0, v1.16b 71beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu uminv h0, v1.4h 72beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu uminv h0, v1.8h 73beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu uminv s0, v1.4s 74beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 75beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: uminv b0, v1.8b // encoding: [0x20,0xa8,0x31,0x2e] 76beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: uminv b0, v1.16b // encoding: [0x20,0xa8,0x31,0x6e] 77beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: uminv h0, v1.4h // encoding: [0x20,0xa8,0x71,0x2e] 78beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: uminv h0, v1.8h // encoding: [0x20,0xa8,0x71,0x6e] 79beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: uminv s0, v1.4s // encoding: [0x20,0xa8,0xb1,0x6e] 80beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 81beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu addv b0, v1.8b 82beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu addv b0, v1.16b 83beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu addv h0, v1.4h 84beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu addv h0, v1.8h 85beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu addv s0, v1.4s 86beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 87beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: addv b0, v1.8b // encoding: [0x20,0xb8,0x31,0x0e] 88beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: addv b0, v1.16b // encoding: [0x20,0xb8,0x31,0x4e] 89beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: addv h0, v1.4h // encoding: [0x20,0xb8,0x71,0x0e] 90beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: addv h0, v1.8h // encoding: [0x20,0xb8,0x71,0x4e] 91beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: addv s0, v1.4s // encoding: [0x20,0xb8,0xb1,0x4e] 92beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 93beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu fmaxnmv s0, v1.4s 94beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu fminnmv s0, v1.4s 95beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu fmaxv s0, v1.4s 96beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu fminv s0, v1.4s 97beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 98beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: fmaxnmv s0, v1.4s // encoding: [0x20,0xc8,0x30,0x6e] 99beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: fminnmv s0, v1.4s // encoding: [0x20,0xc8,0xb0,0x6e] 100beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: fmaxv s0, v1.4s // encoding: [0x20,0xf8,0x30,0x6e] 101beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: fminv s0, v1.4s // encoding: [0x20,0xf8,0xb0,0x6e] 102