xref: /aosp_15_r20/external/llvm/test/MC/AArch64/armv8.1a-rdma.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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