1 # RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.1a --disassemble < %s 2>&1 | FileCheck %s 2 3 [0x20,0x84,0x02,0x2e] # sqrdmlah v0.8b, v1.8b, v2.8b 4 [0x20,0x8c,0x02,0x2e] # sqrdmlsh v0.8b, v1.8b, v2.8b 5 [0x20,0x84,0xc2,0x2e] # sqrdmlah v0.1d, v1.1d, v2.1d 6 [0x20,0x8c,0xc2,0x2e] # sqrdmlsh v0.1d, v1.1d, v2.1d 7 [0x20,0x84,0x02,0x6e] # sqrdmlah v0.16b, v1.16b, v2.16b 8 [0x20,0x8c,0x02,0x6e] # sqrdmlsh v0.16b, v1.16b, v2.16b 9 [0x20,0x84,0xc2,0x6e] # sqrdmlah v0.2d, v1.2d, v2.2d 10 [0x20,0x8c,0xc2,0x6e] # sqrdmlsh v0.2d, v1.2d, v2.2d 11 # CHECK: warning: invalid instruction encoding 12 # CHECK: [0x20,0x84,0x02,0x2e] 13 # CHECK: warning: invalid instruction encoding 14 # CHECK: [0x20,0x8c,0x02,0x2e] 15 # CHECK: warning: invalid instruction encoding 16 # CHECK: [0x20,0x84,0xc2,0x2e] 17 # CHECK: warning: invalid instruction encoding 18 # CHECK: [0x20,0x8c,0xc2,0x2e] 19 # CHECK: warning: invalid instruction encoding 20 # CHECK: [0x20,0x84,0x02,0x6e] 21 # CHECK: warning: invalid instruction encoding 22 # CHECK: [0x20,0x8c,0x02,0x6e] 23 # CHECK: warning: invalid instruction encoding 24 # CHECK: [0x20,0x84,0xc2,0x6e] 25 # CHECK: warning: invalid instruction encoding 26 # CHECK: [0x20,0x8c,0xc2,0x6e] 27 28 [0x20,0x84,0x02,0x7e] # sqrdmlah b0, b1, b2 29 [0x20,0x8c,0x02,0x7e] # sqrdmlsh b0, b1, b2 30 [0x20,0x84,0xc2,0x7e] # sqrdmlah d0, d1, d2 31 [0x20,0x8c,0xc2,0x7e] # sqrdmlsh d0, d1, d2 32 # CHECK: warning: invalid instruction encoding 33 # CHECK: [0x20,0x84,0x02,0x7e] 34 # CHECK: warning: invalid instruction encoding 35 # CHECK: [0x20,0x8c,0x02,0x7e] 36 # CHECK: warning: invalid instruction encoding 37 # CHECK: [0x20,0x84,0xc2,0x7e] 38 # CHECK: warning: invalid instruction encoding 39 # CHECK: [0x20,0x8c,0xc2,0x7e] 40 41 [0x20,0xd0,0x32,0x2f] # sqrdmlah v0.8b, v1.8b, v2.b[3] 42 [0x20,0xf0,0x32,0x2f] # sqrdmlsh v0.8b, v1.8b, v2.b[3] 43 [0x20,0xd0,0xe2,0x2f] # sqrdmlah v0.1d, v1.1d, v2.d[1] 44 [0x20,0xf0,0xe2,0x2f] # sqrdmlsh v0.1d, v1.1d, v2.d[1] 45 [0x20,0xd0,0x32,0x6f] # sqrdmlah v0.16b, v1.16b, v2.b[3] 46 [0x20,0xf0,0x32,0x6f] # sqrdmlsh v0.16b, v1.16b, v2.b[3] 47 [0x20,0xd8,0xe2,0x6f] # sqrdmlah v0.2d, v1.2d, v2.d[3] 48 [0x20,0xf8,0xe2,0x6f] # sqrdmlsh v0.2d, v1.2d, v2.d[3] 49 # CHECK: warning: invalid instruction encoding 50 # CHECK: [0x20,0xd0,0x32,0x2f] 51 # CHECK: warning: invalid instruction encoding 52 # CHECK: [0x20,0xf0,0x32,0x2f] 53 # CHECK: warning: invalid instruction encoding 54 # CHECK: [0x20,0xd0,0xe2,0x2f] 55 # CHECK: warning: invalid instruction encoding 56 # CHECK: [0x20,0xf0,0xe2,0x2f] 57 # CHECK: warning: invalid instruction encoding 58 # CHECK: [0x20,0xd0,0x32,0x6f] 59 # CHECK: warning: invalid instruction encoding 60 # CHECK: [0x20,0xf0,0x32,0x6f] 61 # CHECK: warning: invalid instruction encoding 62 # CHECK: [0x20,0xd8,0xe2,0x6f] 63 # CHECK: warning: invalid instruction encoding 64 # CHECK: [0x20,0xf8,0xe2,0x6f] 65 66 [0x20,0xd0,0x32,0x7f] # sqrdmlah b0, b1, v2.b[3] 67 [0x20,0xf0,0x32,0x7f] # sqrdmlsh b0, b1, v2.b[3] 68 [0x20,0xd8,0xe2,0x7f] # sqrdmlah d0, d1, v2.d[3] 69 [0x20,0xf8,0xe2,0x7f] # sqrdmlsh d0, d1, v2.d[3] 70 # CHECK: warning: invalid instruction encoding 71 # CHECK: [0x20,0xd0,0x32,0x7f] 72 # CHECK: warning: invalid instruction encoding 73 # CHECK: [0x20,0xf0,0x32,0x7f] 74 # CHECK: warning: invalid instruction encoding 75 # CHECK: [0x20,0xd8,0xe2,0x7f] 76 # CHECK: warning: invalid instruction encoding 77 # CHECK: [0x20,0xf8,0xe2,0x7f] 78 79 [0x20,0x84,0x42,0x2e] 80 [0x20,0x8c,0x42,0x2e] 81 [0x20,0x84,0x82,0x2e] 82 [0x20,0x8c,0x82,0x2e] 83 [0x20,0x84,0x42,0x6e] 84 [0x20,0x8c,0x42,0x6e] 85 [0x20,0x84,0x82,0x6e] 86 [0x20,0x8c,0x82,0x6e] 87 # CHECK: sqrdmlah v0.4h, v1.4h, v2.4h 88 # CHECK: sqrdmlsh v0.4h, v1.4h, v2.4h 89 # CHECK: sqrdmlah v0.2s, v1.2s, v2.2s 90 # CHECK: sqrdmlsh v0.2s, v1.2s, v2.2s 91 # CHECK: sqrdmlah v0.8h, v1.8h, v2.8h 92 # CHECK: sqrdmlsh v0.8h, v1.8h, v2.8h 93 # CHECK: sqrdmlah v0.4s, v1.4s, v2.4s 94 # CHECK: sqrdmlsh v0.4s, v1.4s, v2.4s 95 96 [0x20,0x84,0x42,0x7e] 97 [0x20,0x8c,0x42,0x7e] 98 [0x20,0x84,0x82,0x7e] 99 [0x20,0x8c,0x82,0x7e] 100 # CHECK: sqrdmlah h0, h1, h2 101 # CHECK: sqrdmlsh h0, h1, h2 102 # CHECK: sqrdmlah s0, s1, s2 103 # CHECK: sqrdmlsh s0, s1, s2 104 105 0x20,0xd0,0x72,0x2f 106 0x20,0xf0,0x72,0x2f 107 0x20,0xd0,0xa2,0x2f 108 0x20,0xf0,0xa2,0x2f 109 0x20,0xd0,0x72,0x6f 110 0x20,0xf0,0x72,0x6f 111 0x20,0xd8,0xa2,0x6f 112 0x20,0xf8,0xa2,0x6f 113 # CHECK: sqrdmlah v0.4h, v1.4h, v2.h[3] 114 # CHECK: sqrdmlsh v0.4h, v1.4h, v2.h[3] 115 # CHECK: sqrdmlah v0.2s, v1.2s, v2.s[1] 116 # CHECK: sqrdmlsh v0.2s, v1.2s, v2.s[1] 117 # CHECK: sqrdmlah v0.8h, v1.8h, v2.h[3] 118 # CHECK: sqrdmlsh v0.8h, v1.8h, v2.h[3] 119 # CHECK: sqrdmlah v0.4s, v1.4s, v2.s[3] 120 # CHECK: sqrdmlsh v0.4s, v1.4s, v2.s[3] 121 122 0x20,0xd0,0x72,0x7f 123 0x20,0xf0,0x72,0x7f 124 0x20,0xd8,0xa2,0x7f 125 0x20,0xf8,0xa2,0x7f 126 # CHECK: sqrdmlah h0, h1, v2.h[3] 127 # CHECK: sqrdmlsh h0, h1, v2.h[3] 128 # CHECK: sqrdmlah s0, s1, v2.s[3] 129 # CHECK: sqrdmlsh s0, s1, v2.s[3] 130