1# RUN: llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -mattr=+mve.fp,+fp64 -show-encoding %s | FileCheck %s 2# RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -show-encoding %s &> %t 3# RUN: FileCheck --check-prefix=CHECK-NOMVE < %t %s 4 5# CHECK: vcmp.f16 eq, q0, q4 @ encoding: [0x31,0xfe,0x08,0x0f] 6# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 7[0x31,0xfe,0x08,0x0f] 8 9# CHECK: vcmp.f16 ne, q2, q7 @ encoding: [0x35,0xfe,0x8e,0x0f] 10# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 11[0x35,0xfe,0x8e,0x0f] 12 13# CHECK: vcmp.f16 ge, q0, q0 @ encoding: [0x31,0xfe,0x00,0x1f] 14# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 15[0x31,0xfe,0x00,0x1f] 16 17# CHECK: vcmp.f16 lt, q0, q1 @ encoding: [0x31,0xfe,0x82,0x1f] 18# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 19[0x31,0xfe,0x82,0x1f] 20 21# CHECK: vcmp.f16 gt, q1, q4 @ encoding: [0x33,0xfe,0x09,0x1f] 22# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 23[0x33,0xfe,0x09,0x1f] 24 25# CHECK: vcmp.f16 le, q2, q6 @ encoding: [0x35,0xfe,0x8d,0x1f] 26# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 27[0x35,0xfe,0x8d,0x1f] 28 29# CHECK: vcmp.f32 eq, q2, q5 @ encoding: [0x35,0xee,0x0a,0x0f] 30# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 31[0x35,0xee,0x0a,0x0f] 32 33# CHECK: vcmp.f32 ne, q3, q4 @ encoding: [0x37,0xee,0x88,0x0f] 34# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 35[0x37,0xee,0x88,0x0f] 36 37# CHECK: vcmp.f32 ge, q0, q7 @ encoding: [0x31,0xee,0x0e,0x1f] 38# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 39[0x31,0xee,0x0e,0x1f] 40 41# CHECK: vcmp.f32 lt, q5, q2 @ encoding: [0x3b,0xee,0x84,0x1f] 42# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 43[0x3b,0xee,0x84,0x1f] 44 45# CHECK: vcmp.f32 gt, q2, q7 @ encoding: [0x35,0xee,0x0f,0x1f] 46# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 47[0x35,0xee,0x0f,0x1f] 48 49# CHECK: vcmp.f32 le, q2, q4 @ encoding: [0x35,0xee,0x89,0x1f] 50# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 51[0x35,0xee,0x89,0x1f] 52 53# CHECK: vcmp.i8 eq, q4, q6 @ encoding: [0x09,0xfe,0x0c,0x0f] 54# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 55[0x09,0xfe,0x0c,0x0f] 56 57# CHECK: vcmp.i8 ne, q2, q2 @ encoding: [0x05,0xfe,0x84,0x0f] 58# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 59[0x05,0xfe,0x84,0x0f] 60 61# CHECK: vcmp.s8 ge, q0, q0 @ encoding: [0x01,0xfe,0x00,0x1f] 62# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 63[0x01,0xfe,0x00,0x1f] 64 65# CHECK: vcmp.s8 lt, q2, q7 @ encoding: [0x05,0xfe,0x8e,0x1f] 66# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 67[0x05,0xfe,0x8e,0x1f] 68 69# CHECK: vcmp.s8 gt, q4, q3 @ encoding: [0x09,0xfe,0x07,0x1f] 70# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 71[0x09,0xfe,0x07,0x1f] 72 73# CHECK: vcmp.s8 le, q7, q3 @ encoding: [0x0f,0xfe,0x87,0x1f] 74# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 75[0x0f,0xfe,0x87,0x1f] 76 77# CHECK: vcmp.u8 hi, q1, q4 @ encoding: [0x03,0xfe,0x89,0x0f] 78# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 79[0x03,0xfe,0x89,0x0f] 80 81# CHECK: vcmp.u8 cs, q1, q4 @ encoding: [0x03,0xfe,0x09,0x0f] 82# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 83[0x03,0xfe,0x09,0x0f] 84 85# CHECK: vcmp.i16 eq, q4, q7 @ encoding: [0x19,0xfe,0x0e,0x0f] 86# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 87[0x19,0xfe,0x0e,0x0f] 88 89# CHECK: vcmp.i16 ne, q2, q1 @ encoding: [0x15,0xfe,0x82,0x0f] 90# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 91[0x15,0xfe,0x82,0x0f] 92 93# CHECK: vcmp.s16 ge, q1, q7 @ encoding: [0x13,0xfe,0x0e,0x1f] 94# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 95[0x13,0xfe,0x0e,0x1f] 96 97# CHECK: vcmp.s16 lt, q0, q1 @ encoding: [0x11,0xfe,0x82,0x1f] 98# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 99[0x11,0xfe,0x82,0x1f] 100 101# CHECK: vcmp.s16 gt, q1, q7 @ encoding: [0x13,0xfe,0x0f,0x1f] 102# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 103[0x13,0xfe,0x0f,0x1f] 104 105# CHECK: vcmp.s16 le, q2, q1 @ encoding: [0x15,0xfe,0x83,0x1f] 106# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 107[0x15,0xfe,0x83,0x1f] 108 109# CHECK: vcmp.u16 hi, q1, q4 @ encoding: [0x13,0xfe,0x89,0x0f] 110# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 111[0x13,0xfe,0x89,0x0f] 112 113# CHECK: vcmp.u16 cs, q1, q4 @ encoding: [0x13,0xfe,0x09,0x0f] 114# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 115[0x13,0xfe,0x09,0x0f] 116 117# CHECK: vcmp.i32 eq, q2, q7 @ encoding: [0x25,0xfe,0x0e,0x0f] 118# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 119[0x25,0xfe,0x0e,0x0f] 120 121# CHECK: vcmp.i32 ne, q2, q4 @ encoding: [0x25,0xfe,0x88,0x0f] 122# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 123[0x25,0xfe,0x88,0x0f] 124 125# CHECK: vcmp.s32 ge, q5, q5 @ encoding: [0x2b,0xfe,0x0a,0x1f] 126# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 127[0x2b,0xfe,0x0a,0x1f] 128 129# CHECK: vcmp.s32 lt, q2, q2 @ encoding: [0x25,0xfe,0x84,0x1f] 130# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 131[0x25,0xfe,0x84,0x1f] 132 133# CHECK: vcmp.s32 gt, q0, q1 @ encoding: [0x21,0xfe,0x03,0x1f] 134# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 135[0x21,0xfe,0x03,0x1f] 136 137# CHECK: vcmp.s32 le, q5, q4 @ encoding: [0x2b,0xfe,0x89,0x1f] 138# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 139[0x2b,0xfe,0x89,0x1f] 140 141# CHECK: vcmp.u32 hi, q1, q4 @ encoding: [0x23,0xfe,0x89,0x0f] 142# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 143[0x23,0xfe,0x89,0x0f] 144 145# CHECK: vcmp.u32 cs, q1, q4 @ encoding: [0x23,0xfe,0x09,0x0f] 146# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 147[0x23,0xfe,0x09,0x0f] 148 149# CHECK: vcmp.f16 gt, q4, zr @ encoding: [0x39,0xfe,0x6f,0x1f] 150# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 151[0x39,0xfe,0x6f,0x1f] 152 153# CHECK: vcmp.f16 eq, q4, r12 @ encoding: [0x39,0xfe,0x4c,0x0f] 154# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 155[0x39,0xfe,0x4c,0x0f] 156 157# CHECK: vcmp.f32 ne, q3, r0 @ encoding: [0x37,0xee,0xc0,0x0f] 158# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 159[0x37,0xee,0xc0,0x0f] 160 161# CHECK: vcmp.i8 eq, q1, r0 @ encoding: [0x03,0xfe,0x40,0x0f] 162# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 163[0x03,0xfe,0x40,0x0f] 164 165# CHECK: vcmp.s8 le, q1, r0 @ encoding: [0x03,0xfe,0xe0,0x1f] 166# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 167[0x03,0xfe,0xe0,0x1f] 168 169# CHECK: vcmp.u8 cs, q1, r0 @ encoding: [0x03,0xfe,0x60,0x0f] 170# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 171[0x03,0xfe,0x60,0x0f] 172 173# CHECK: vcmp.i16 eq, q5, r10 @ encoding: [0x1b,0xfe,0x4a,0x0f] 174# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 175[0x1b,0xfe,0x4a,0x0f] 176 177# CHECK: vcmp.i32 eq, q1, r4 @ encoding: [0x23,0xfe,0x44,0x0f] 178# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding 179[0x23,0xfe,0x44,0x0f] 180