1*71ae267dSTies Stuij// RUN: not llvm-mc -o - -triple arm -mattr=+v8.6a -show-encoding %s 2>&1 | FileCheck %s 2*71ae267dSTies Stuijvfmat.bf16 d0, d0, d0 3*71ae267dSTies Stuijvfmat.bf16 d0, d0, q0 4*71ae267dSTies Stuijvfmat.bf16 d0, q0, d0 5*71ae267dSTies Stuijvfmat.bf16 q0, d0, d0 6*71ae267dSTies Stuijvfmat.bf16 q0, q0, d0 7*71ae267dSTies Stuijvfmat.bf16 q0, d0, q0 8*71ae267dSTies Stuijvfmat.bf16 d0, q0, q0 9*71ae267dSTies Stuijvfmat.bf16 q0, q0, q0[3] 10*71ae267dSTies Stuijvfmat.bf16 q0, q0, q0[3] 11*71ae267dSTies Stuijvfmat.bf16 q0, d0, d0[0] 12*71ae267dSTies Stuijvfmat.bf16 d0, q0, d0[0] 13*71ae267dSTies Stuijvfmat.bf16 q0, d0, d0[9] 14*71ae267dSTies Stuij 15*71ae267dSTies Stuijvfmab.bf16 d0, d0, d0 16*71ae267dSTies Stuijvfmab.bf16 d0, d0, q0 17*71ae267dSTies Stuijvfmab.bf16 d0, q0, d0 18*71ae267dSTies Stuijvfmab.bf16 q0, d0, d0 19*71ae267dSTies Stuijvfmab.bf16 q0, q0, d0 20*71ae267dSTies Stuijvfmab.bf16 q0, d0, q0 21*71ae267dSTies Stuijvfmab.bf16 d0, q0, q0 22*71ae267dSTies Stuijvfmab.bf16 q0, q0, q0[3] 23*71ae267dSTies Stuijvfmab.bf16 q0, q0, q0[3] 24*71ae267dSTies Stuijvfmab.bf16 q0, d0, d0[0] 25*71ae267dSTies Stuijvfmab.bf16 d0, q0, d0[0] 26*71ae267dSTies Stuijvfmab.bf16 q0, d0, d0[9] 27*71ae267dSTies Stuij 28*71ae267dSTies Stuij//CHECK:error: invalid instruction 29*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 d0, d0, d0 30*71ae267dSTies Stuij//CHECK-NEXT:^ 31*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction 32*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 d0, d0, q0 33*71ae267dSTies Stuij//CHECK-NEXT:^ 34*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction 35*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 d0, q0, d0 36*71ae267dSTies Stuij//CHECK-NEXT:^ 37*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction 38*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, d0, d0 39*71ae267dSTies Stuij//CHECK-NEXT:^ 40*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this: 41*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, d0 42*71ae267dSTies Stuij//CHECK-NEXT:^ 43*71ae267dSTies Stuij//CHECK-NEXT:note: too few operands for instruction 44*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, d0 45*71ae267dSTies Stuij//CHECK-NEXT: ^ 46*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [q0, q15] 47*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, d0 48*71ae267dSTies Stuij//CHECK-NEXT: ^ 49*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15] 50*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, d0, q0 51*71ae267dSTies Stuij//CHECK-NEXT: ^ 52*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15] 53*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 d0, q0, q0 54*71ae267dSTies Stuij//CHECK-NEXT: ^ 55*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this: 56*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3] 57*71ae267dSTies Stuij//CHECK-NEXT:^ 58*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [d0, d7] 59*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3] 60*71ae267dSTies Stuij//CHECK-NEXT: ^ 61*71ae267dSTies Stuij//CHECK-NEXT:note: too many operands for instruction 62*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3] 63*71ae267dSTies Stuij//CHECK-NEXT: ^ 64*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this: 65*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3] 66*71ae267dSTies Stuij//CHECK-NEXT:^ 67*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [d0, d7] 68*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3] 69*71ae267dSTies Stuij//CHECK-NEXT: ^ 70*71ae267dSTies Stuij//CHECK-NEXT:note: too many operands for instruction 71*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, q0, q0[3] 72*71ae267dSTies Stuij//CHECK-NEXT: ^ 73*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15] 74*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, d0, d0[0] 75*71ae267dSTies Stuij//CHECK-NEXT: ^ 76*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15] 77*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 d0, q0, d0[0] 78*71ae267dSTies Stuij//CHECK-NEXT: ^ 79*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction 80*71ae267dSTies Stuij//CHECK-NEXT:vfmat.bf16 q0, d0, d0[9] 81*71ae267dSTies Stuij//CHECK-NEXT:^ 82*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction 83*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 d0, d0, d0 84*71ae267dSTies Stuij//CHECK-NEXT:^ 85*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction 86*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 d0, d0, q0 87*71ae267dSTies Stuij//CHECK-NEXT:^ 88*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction 89*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 d0, q0, d0 90*71ae267dSTies Stuij//CHECK-NEXT:^ 91*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction 92*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, d0, d0 93*71ae267dSTies Stuij//CHECK-NEXT:^ 94*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this: 95*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, d0 96*71ae267dSTies Stuij//CHECK-NEXT:^ 97*71ae267dSTies Stuij//CHECK-NEXT:note: too few operands for instruction 98*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, d0 99*71ae267dSTies Stuij//CHECK-NEXT: ^ 100*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [q0, q15] 101*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, d0 102*71ae267dSTies Stuij//CHECK-NEXT: ^ 103*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15] 104*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, d0, q0 105*71ae267dSTies Stuij//CHECK-NEXT: ^ 106*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15] 107*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 d0, q0, q0 108*71ae267dSTies Stuij//CHECK-NEXT: ^ 109*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this: 110*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3] 111*71ae267dSTies Stuij//CHECK-NEXT:^ 112*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [d0, d7] 113*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3] 114*71ae267dSTies Stuij//CHECK-NEXT: ^ 115*71ae267dSTies Stuij//CHECK-NEXT:note: too many operands for instruction 116*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3] 117*71ae267dSTies Stuij//CHECK-NEXT: ^ 118*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction, any one of the following would fix this: 119*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3] 120*71ae267dSTies Stuij//CHECK-NEXT:^ 121*71ae267dSTies Stuij//CHECK-NEXT:note: operand must be a register in range [d0, d7] 122*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3] 123*71ae267dSTies Stuij//CHECK-NEXT: ^ 124*71ae267dSTies Stuij//CHECK-NEXT:note: too many operands for instruction 125*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, q0, q0[3] 126*71ae267dSTies Stuij//CHECK-NEXT: ^ 127*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15] 128*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, d0, d0[0] 129*71ae267dSTies Stuij//CHECK-NEXT: ^ 130*71ae267dSTies Stuij//CHECK-NEXT:error: operand must be a register in range [q0, q15] 131*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 d0, q0, d0[0] 132*71ae267dSTies Stuij//CHECK-NEXT: ^ 133*71ae267dSTies Stuij//CHECK-NEXT:error: invalid instruction 134*71ae267dSTies Stuij//CHECK-NEXT:vfmab.bf16 q0, d0, d0[9] 135