1*9880d681SAndroid Build Coastguard Worker// RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.1a -show-encoding < %s 2> %t | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker// RUN: FileCheck --check-prefix=CHECK-ERROR < %t %s 3*9880d681SAndroid Build Coastguard Worker .text 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker //AdvSIMD RDMA vector 6*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.4h, v1.4h, v2.4h 7*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.4h, v1.4h, v2.4h 8*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.2s, v1.2s, v2.2s 9*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.2s, v1.2s, v2.2s 10*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.4s, v1.4s, v2.4s 11*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.4s, v1.4s, v2.4s 12*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.8h, v1.8h, v2.8h 13*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.8h, v1.8h, v2.8h 14*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah v0.4h, v1.4h, v2.4h // encoding: [0x20,0x84,0x42,0x2e] 15*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh v0.4h, v1.4h, v2.4h // encoding: [0x20,0x8c,0x42,0x2e] 16*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah v0.2s, v1.2s, v2.2s // encoding: [0x20,0x84,0x82,0x2e] 17*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh v0.2s, v1.2s, v2.2s // encoding: [0x20,0x8c,0x82,0x2e] 18*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah v0.4s, v1.4s, v2.4s // encoding: [0x20,0x84,0x82,0x6e] 19*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh v0.4s, v1.4s, v2.4s // encoding: [0x20,0x8c,0x82,0x6e] 20*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah v0.8h, v1.8h, v2.8h // encoding: [0x20,0x84,0x42,0x6e] 21*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh v0.8h, v1.8h, v2.8h // encoding: [0x20,0x8c,0x42,0x6e] 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.2h, v1.2h, v2.2h 24*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.2h, v1.2h, v2.2h 25*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.8s, v1.8s, v2.8s 26*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.8s, v1.8s, v2.8s 27*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.2s, v1.4h, v2.8h 28*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.4s, v1.8h, v2.2s 29*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 30*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlah v0.2h, v1.2h, v2.2h 31*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 32*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 33*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlsh v0.2h, v1.2h, v2.2h 34*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 35*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid vector kind qualifier 36*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlah v0.8s, v1.8s, v2.8s 37*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 38*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid vector kind qualifier 39*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlah v0.8s, v1.8s, v2.8s 40*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 41*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid vector kind qualifier 42*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlah v0.8s, v1.8s, v2.8s 43*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 44*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 45*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlah v0.8s, v1.8s, v2.8s 46*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 47*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid vector kind qualifier 48*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlsh v0.8s, v1.8s, v2.8s 49*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 50*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid vector kind qualifier 51*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlsh v0.8s, v1.8s, v2.8s 52*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 53*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid vector kind qualifier 54*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlsh v0.8s, v1.8s, v2.8s 55*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 56*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 57*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlsh v0.8s, v1.8s, v2.8s 58*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 59*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 60*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlah v0.2s, v1.4h, v2.8h 61*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 62*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 63*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlsh v0.4s, v1.8h, v2.2s 64*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Worker //AdvSIMD RDMA scalar 67*9880d681SAndroid Build Coastguard Worker sqrdmlah h0, h1, h2 68*9880d681SAndroid Build Coastguard Worker sqrdmlsh h0, h1, h2 69*9880d681SAndroid Build Coastguard Worker sqrdmlah s0, s1, s2 70*9880d681SAndroid Build Coastguard Worker sqrdmlsh s0, s1, s2 71*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah h0, h1, h2 // encoding: [0x20,0x84,0x42,0x7e] 72*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh h0, h1, h2 // encoding: [0x20,0x8c,0x42,0x7e] 73*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah s0, s1, s2 // encoding: [0x20,0x84,0x82,0x7e] 74*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh s0, s1, s2 // encoding: [0x20,0x8c,0x82,0x7e] 75*9880d681SAndroid Build Coastguard Worker 76*9880d681SAndroid Build Coastguard Worker //AdvSIMD RDMA vector by-element 77*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.4h, v1.4h, v2.h[3] 78*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.4h, v1.4h, v2.h[3] 79*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.2s, v1.2s, v2.s[1] 80*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.2s, v1.2s, v2.s[1] 81*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.8h, v1.8h, v2.h[3] 82*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.8h, v1.8h, v2.h[3] 83*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.4s, v1.4s, v2.s[3] 84*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.4s, v1.4s, v2.s[3] 85*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah v0.4h, v1.4h, v2.h[3] // encoding: [0x20,0xd0,0x72,0x2f] 86*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh v0.4h, v1.4h, v2.h[3] // encoding: [0x20,0xf0,0x72,0x2f] 87*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah v0.2s, v1.2s, v2.s[1] // encoding: [0x20,0xd0,0xa2,0x2f] 88*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh v0.2s, v1.2s, v2.s[1] // encoding: [0x20,0xf0,0xa2,0x2f] 89*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah v0.8h, v1.8h, v2.h[3] // encoding: [0x20,0xd0,0x72,0x6f] 90*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh v0.8h, v1.8h, v2.h[3] // encoding: [0x20,0xf0,0x72,0x6f] 91*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah v0.4s, v1.4s, v2.s[3] // encoding: [0x20,0xd8,0xa2,0x6f] 92*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh v0.4s, v1.4s, v2.s[3] // encoding: [0x20,0xf8,0xa2,0x6f] 93*9880d681SAndroid Build Coastguard Worker 94*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.4s, v1.2s, v2.s[1] 95*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.2s, v1.2d, v2.s[1] 96*9880d681SAndroid Build Coastguard Worker sqrdmlah v0.8h, v1.8h, v2.s[3] 97*9880d681SAndroid Build Coastguard Worker sqrdmlsh v0.8h, v1.8h, v2.h[8] 98*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 99*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlah v0.4s, v1.2s, v2.s[1] 100*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 101*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 102*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlsh v0.2s, v1.2d, v2.s[1] 103*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 104*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 105*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlah v0.8h, v1.8h, v2.s[3] 106*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 107*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: vector lane must be an integer in range [0, 7]. 108*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlsh v0.8h, v1.8h, v2.h[8] 109*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 110*9880d681SAndroid Build Coastguard Worker 111*9880d681SAndroid Build Coastguard Worker //AdvSIMD RDMA scalar by-element 112*9880d681SAndroid Build Coastguard Worker sqrdmlah h0, h1, v2.h[3] 113*9880d681SAndroid Build Coastguard Worker sqrdmlsh h0, h1, v2.h[3] 114*9880d681SAndroid Build Coastguard Worker sqrdmlah s0, s1, v2.s[3] 115*9880d681SAndroid Build Coastguard Worker sqrdmlsh s0, s1, v2.s[3] 116*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah h0, h1, v2.h[3] // encoding: [0x20,0xd0,0x72,0x7f] 117*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh h0, h1, v2.h[3] // encoding: [0x20,0xf0,0x72,0x7f] 118*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlah s0, s1, v2.s[3] // encoding: [0x20,0xd8,0xa2,0x7f] 119*9880d681SAndroid Build Coastguard Worker// CHECK: sqrdmlsh s0, s1, v2.s[3] // encoding: [0x20,0xf8,0xa2,0x7f] 120*9880d681SAndroid Build Coastguard Worker 121*9880d681SAndroid Build Coastguard Worker sqrdmlah b0, h1, v2.h[3] 122*9880d681SAndroid Build Coastguard Worker sqrdmlah s0, d1, v2.s[3] 123*9880d681SAndroid Build Coastguard Worker sqrdmlsh h0, h1, v2.s[3] 124*9880d681SAndroid Build Coastguard Worker sqrdmlsh s0, s1, v2.s[4] 125*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 126*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlah b0, h1, v2.h[3] 127*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 128*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 129*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlah s0, d1, v2.s[3] 130*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 131*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 132*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlsh h0, h1, v2.s[3] 133*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 134*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: vector lane must be an integer in range [0, 3]. 135*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sqrdmlsh s0, s1, v2.s[4] 136*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 137