135 lines · plain
1// RUN: not llvm-mc -o - -triple arm -mattr=+v8.6a -show-encoding %s 2>&1 | FileCheck %s2vfmat.bf16 d0, d0, d03vfmat.bf16 d0, d0, q04vfmat.bf16 d0, q0, d05vfmat.bf16 q0, d0, d06vfmat.bf16 q0, q0, d07vfmat.bf16 q0, d0, q08vfmat.bf16 d0, q0, q09vfmat.bf16 q0, q0, q0[3]10vfmat.bf16 q0, q0, q0[3]11vfmat.bf16 q0, d0, d0[0]12vfmat.bf16 d0, q0, d0[0]13vfmat.bf16 q0, d0, d0[9]14 15vfmab.bf16 d0, d0, d016vfmab.bf16 d0, d0, q017vfmab.bf16 d0, q0, d018vfmab.bf16 q0, d0, d019vfmab.bf16 q0, q0, d020vfmab.bf16 q0, d0, q021vfmab.bf16 d0, q0, q022vfmab.bf16 q0, q0, q0[3]23vfmab.bf16 q0, q0, q0[3]24vfmab.bf16 q0, d0, d0[0]25vfmab.bf16 d0, q0, d0[0]26vfmab.bf16 q0, d0, d0[9]27 28//CHECK:error: invalid instruction29//CHECK-NEXT:vfmat.bf16 d0, d0, d030//CHECK-NEXT:^31//CHECK-NEXT:error: invalid instruction32//CHECK-NEXT:vfmat.bf16 d0, d0, q033//CHECK-NEXT:^34//CHECK-NEXT:error: invalid instruction35//CHECK-NEXT:vfmat.bf16 d0, q0, d036//CHECK-NEXT:^37//CHECK-NEXT:error: invalid instruction38//CHECK-NEXT:vfmat.bf16 q0, d0, d039//CHECK-NEXT:^40//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:41//CHECK-NEXT:vfmat.bf16 q0, q0, d042//CHECK-NEXT:^43//CHECK-NEXT:note: too few operands for instruction44//CHECK-NEXT:vfmat.bf16 q0, q0, d045//CHECK-NEXT: ^46//CHECK-NEXT:note: operand must be a register in range [q0, q15]47//CHECK-NEXT:vfmat.bf16 q0, q0, d048//CHECK-NEXT: ^49//CHECK-NEXT:error: operand must be a register in range [q0, q15]50//CHECK-NEXT:vfmat.bf16 q0, d0, q051//CHECK-NEXT: ^52//CHECK-NEXT:error: operand must be a register in range [q0, q15]53//CHECK-NEXT:vfmat.bf16 d0, q0, q054//CHECK-NEXT: ^55//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:56//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]57//CHECK-NEXT:^58//CHECK-NEXT:note: operand must be a register in range [d0, d7]59//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]60//CHECK-NEXT: ^61//CHECK-NEXT:note: too many operands for instruction62//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]63//CHECK-NEXT: ^64//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:65//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]66//CHECK-NEXT:^67//CHECK-NEXT:note: operand must be a register in range [d0, d7]68//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]69//CHECK-NEXT: ^70//CHECK-NEXT:note: too many operands for instruction71//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3]72//CHECK-NEXT: ^73//CHECK-NEXT:error: operand must be a register in range [q0, q15]74//CHECK-NEXT:vfmat.bf16 q0, d0, d0[0]75//CHECK-NEXT: ^76//CHECK-NEXT:error: operand must be a register in range [q0, q15]77//CHECK-NEXT:vfmat.bf16 d0, q0, d0[0]78//CHECK-NEXT: ^79//CHECK-NEXT:error: invalid instruction80//CHECK-NEXT:vfmat.bf16 q0, d0, d0[9]81//CHECK-NEXT:^82//CHECK-NEXT:error: invalid instruction83//CHECK-NEXT:vfmab.bf16 d0, d0, d084//CHECK-NEXT:^85//CHECK-NEXT:error: invalid instruction86//CHECK-NEXT:vfmab.bf16 d0, d0, q087//CHECK-NEXT:^88//CHECK-NEXT:error: invalid instruction89//CHECK-NEXT:vfmab.bf16 d0, q0, d090//CHECK-NEXT:^91//CHECK-NEXT:error: invalid instruction92//CHECK-NEXT:vfmab.bf16 q0, d0, d093//CHECK-NEXT:^94//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:95//CHECK-NEXT:vfmab.bf16 q0, q0, d096//CHECK-NEXT:^97//CHECK-NEXT:note: too few operands for instruction98//CHECK-NEXT:vfmab.bf16 q0, q0, d099//CHECK-NEXT: ^100//CHECK-NEXT:note: operand must be a register in range [q0, q15]101//CHECK-NEXT:vfmab.bf16 q0, q0, d0102//CHECK-NEXT: ^103//CHECK-NEXT:error: operand must be a register in range [q0, q15]104//CHECK-NEXT:vfmab.bf16 q0, d0, q0105//CHECK-NEXT: ^106//CHECK-NEXT:error: operand must be a register in range [q0, q15]107//CHECK-NEXT:vfmab.bf16 d0, q0, q0108//CHECK-NEXT: ^109//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:110//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]111//CHECK-NEXT:^112//CHECK-NEXT:note: operand must be a register in range [d0, d7]113//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]114//CHECK-NEXT: ^115//CHECK-NEXT:note: too many operands for instruction116//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]117//CHECK-NEXT: ^118//CHECK-NEXT:error: invalid instruction, any one of the following would fix this:119//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]120//CHECK-NEXT:^121//CHECK-NEXT:note: operand must be a register in range [d0, d7]122//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]123//CHECK-NEXT: ^124//CHECK-NEXT:note: too many operands for instruction125//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3]126//CHECK-NEXT: ^127//CHECK-NEXT:error: operand must be a register in range [q0, q15]128//CHECK-NEXT:vfmab.bf16 q0, d0, d0[0]129//CHECK-NEXT: ^130//CHECK-NEXT:error: operand must be a register in range [q0, q15]131//CHECK-NEXT:vfmab.bf16 d0, q0, d0[0]132//CHECK-NEXT: ^133//CHECK-NEXT:error: invalid instruction134//CHECK-NEXT:vfmab.bf16 q0, d0, d0[9]135