1f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// RUN: llvm-mc -triple=arm64 -mattr=+neon,+fullfp16 -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 93f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar fmaxnmv h0, v1.4h 94f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar fminnmv h0, v1.4h 95f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar fmaxv h0, v1.4h 96f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar fminv h0, v1.4h 97f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar fmaxnmv h0, v1.8h 98f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar fminnmv h0, v1.8h 99f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar fmaxv h0, v1.8h 100f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar fminv h0, v1.8h 101beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu fmaxnmv s0, v1.4s 102beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu fminnmv s0, v1.4s 103beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu fmaxv s0, v1.4s 104beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu fminv s0, v1.4s 105beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu 106f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fmaxnmv h0, v1.4h // encoding: [0x20,0xc8,0x30,0x0e] 107f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fminnmv h0, v1.4h // encoding: [0x20,0xc8,0xb0,0x0e] 108f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fmaxv h0, v1.4h // encoding: [0x20,0xf8,0x30,0x0e] 109f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fminv h0, v1.4h // encoding: [0x20,0xf8,0xb0,0x0e] 110f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fmaxnmv h0, v1.8h // encoding: [0x20,0xc8,0x30,0x4e] 111f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fminnmv h0, v1.8h // encoding: [0x20,0xc8,0xb0,0x4e] 112f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fmaxv h0, v1.8h // encoding: [0x20,0xf8,0x30,0x4e] 113f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// CHECK: fminv h0, v1.8h // encoding: [0x20,0xf8,0xb0,0x4e] 114beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: fmaxnmv s0, v1.4s // encoding: [0x20,0xc8,0x30,0x6e] 115beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: fminnmv s0, v1.4s // encoding: [0x20,0xc8,0xb0,0x6e] 116beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: fmaxv s0, v1.4s // encoding: [0x20,0xf8,0x30,0x6e] 117beb6afa84397a27e48a9d72ac1d588bc6fcaf564Jiangning Liu// CHECK: fminv s0, v1.4s // encoding: [0x20,0xf8,0xb0,0x6e] 118