151 lines · plain
1# RUN: llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -mattr=+mve.fp,+fp64 -show-encoding %s 2> %t | FileCheck %s2# RUN: FileCheck --check-prefix=ERROR < %t %s3# RUN: not llvm-mc -disassemble -triple=thumbv8.1m.main-none-eabi -show-encoding %s &> %t4# RUN: FileCheck --check-prefix=CHECK-NOMVE < %t %s5 6# CHECK: vbic q0, q1, q7 @ encoding: [0x12,0xef,0x5e,0x01]7# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding8[0x12,0xef,0x5e,0x01]9 10# CHECK: vrev64.8 q0, q4 @ encoding: [0xb0,0xff,0x48,0x00]11# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding12[0xb0,0xff,0x48,0x00]13 14# CHECK: vrev64.16 q1, q3 @ encoding: [0xb4,0xff,0x46,0x20]15# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding16[0xb4,0xff,0x46,0x20]17 18# CHECK: vrev64.32 q0, q2 @ encoding: [0xb8,0xff,0x44,0x00]19# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding20[0xb8,0xff,0x44,0x00]21 22# CHECK: vrev32.8 q0, q1 @ encoding: [0xb0,0xff,0xc2,0x00]23# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding24[0xb0,0xff,0xc2,0x00]25 26# CHECK: vrev32.16 q0, q5 @ encoding: [0xb4,0xff,0xca,0x00]27# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding28[0xb4,0xff,0xca,0x00]29 30# CHECK: vrev16.8 q0, q2 @ encoding: [0xb0,0xff,0x44,0x01]31# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding32[0xb0,0xff,0x44,0x01]33 34# CHECK: vmvn q0, q2 @ encoding: [0xb0,0xff,0xc4,0x05]35# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding36[0xb0,0xff,0xc4,0x05]37 38# CHECK: veor q2, q1, q7 @ encoding: [0x02,0xff,0x5e,0x41]39# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding40[0x02,0xff,0x5e,0x41]41 42# CHECK: vorn q0, q3, q2 @ encoding: [0x36,0xef,0x54,0x01]43# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding44[0x36,0xef,0x54,0x01]45 46# CHECK: vorr q1, q2, q1 @ encoding: [0x24,0xef,0x52,0x21]47# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding48[0x24,0xef,0x52,0x21]49 50# CHECK: vand q0, q2, q0 @ encoding: [0x04,0xef,0x50,0x01]51# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding52[0x04,0xef,0x50,0x01]53 54# CHECK: vorr.i16 q0, #0x12 @ encoding: [0x81,0xef,0x52,0x09]55# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding56[0x81,0xef,0x52,0x09]57 58# CHECK: vorr.i32 q0, #0x1200 @ encoding: [0x81,0xef,0x52,0x03]59# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding60[0x81,0xef,0x52,0x03]61 62# CHECK: vbic.i32 q0, #0x35 @ encoding: [0x83,0xef,0x75,0x01]63[0x83,0xef,0x75,0x01]64 65# CHECK: vbic.i32 q0, #0x3500 @ encoding: [0x83,0xef,0x75,0x03]66[0x83,0xef,0x75,0x03]67 68# CHECK: vbic.i32 q0, #0x350000 @ encoding: [0x83,0xef,0x75,0x05]69[0x83,0xef,0x75,0x05]70 71# CHECK: vbic.i32 q0, #0x35000000 @ encoding: [0x83,0xef,0x75,0x07]72[0x83,0xef,0x75,0x07]73 74# CHECK: vbic.i16 q0, #0x35 @ encoding: [0x83,0xef,0x75,0x09]75[0x83,0xef,0x75,0x09]76 77# CHECK: vbic.i16 q0, #0x3500 @ encoding: [0x83,0xef,0x75,0x0b]78[0x83,0xef,0x75,0x0b]79 80# CHECK: vmov.8 q0[1], r8 @ encoding: [0x40,0xee,0x30,0x8b]81# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding82[0x40,0xee,0x30,0x8b]83 84# CHECK: vmov.16 q0[2], r5 @ encoding: [0x20,0xee,0x30,0x5b]85# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding86[0x20,0xee,0x30,0x5b]87 88# CHECK: vmov.32 q6[3], r11 @ encoding: [0x2d,0xee,0x10,0xbb]89# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding90[0x2d,0xee,0x10,0xbb]91 92# CHECK: vmov.32 r0, q1[0] @ encoding: [0x12,0xee,0x10,0x0b]93# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding94[0x12,0xee,0x10,0x0b]95 96# CHECK: vmov.s16 r1, q2[7] @ encoding: [0x35,0xee,0x70,0x1b]97# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding98[0x35,0xee,0x70,0x1b]99 100# CHECK: vmov.s8 r0, q4[13] @ encoding: [0x79,0xee,0x30,0x0b]101# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding102[0x79,0xee,0x30,0x0b]103 104# CHECK: vmov.u16 r0, q1[4] @ encoding: [0x93,0xee,0x30,0x0b]105# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding106[0x93,0xee,0x30,0x0b]107 108# CHECK: vmov.u8 r0, q5[7] @ encoding: [0xfa,0xee,0x70,0x0b]109# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding110[0xfa,0xee,0x70,0x0b]111 112# CHECK: vmov.f16 s7, r8 @ encoding: [0x03,0xee,0x90,0x89]113# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding114[0x03,0xee,0x90,0x89]115 116# CHECK: vmov.f16 s10, r5 @ encoding: [0x05,0xee,0x10,0x59]117# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding118[0x05,0xee,0x10,0x59]119 120# CHECK: vmov.f16 s10, sp @ encoding: [0x05,0xee,0x10,0xd9]121# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding122[0x05,0xee,0x10,0xd9]123 124# CHECK: vmov.f16 s31, r10 @ encoding: [0x0f,0xee,0x90,0xa9]125# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding126[0x0f,0xee,0x90,0xa9]127 128# CHECK: vmov.f16 r8, s7 @ encoding: [0x13,0xee,0x90,0x89]129# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding130[0x13,0xee,0x90,0x89]131 132# CHECK: vmov.f16 r5, s10 @ encoding: [0x15,0xee,0x10,0x59]133# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding134[0x15,0xee,0x10,0x59]135 136# CHECK: vmov.f16 sp, s10 @ encoding: [0x15,0xee,0x10,0xd9]137# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding138[0x15,0xee,0x10,0xd9]139 140# CHECK: vmov.f16 r10, s31 @ encoding: [0x1f,0xee,0x90,0xa9]141# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding142[0x1f,0xee,0x90,0xa9]143 144# ERROR: [[@LINE+2]]:2: warning: potentially undefined instruction encoding145# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding146[0x05,0xee,0x10,0xf9]147 148# ERROR: [[@LINE+2]]:2: warning: potentially undefined instruction encoding149# CHECK-NOMVE: [[@LINE+1]]:2: warning: invalid instruction encoding150[0x1f,0xee,0x90,0xf9]151