xref: /aosp_15_r20/external/llvm/test/MC/AArch64/neon-across.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple=arm64 -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker// Check that the assembler can handle the documented syntax for AArch64
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
6*9880d681SAndroid Build Coastguard Worker// Instructions across vector registers
7*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker        saddlv h0, v1.8b
10*9880d681SAndroid Build Coastguard Worker        saddlv h0, v1.16b
11*9880d681SAndroid Build Coastguard Worker        saddlv s0, v1.4h
12*9880d681SAndroid Build Coastguard Worker        saddlv s0, v1.8h
13*9880d681SAndroid Build Coastguard Worker        saddlv d0, v1.4s
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker// CHECK: saddlv	h0, v1.8b               // encoding: [0x20,0x38,0x30,0x0e]
16*9880d681SAndroid Build Coastguard Worker// CHECK: saddlv	h0, v1.16b              // encoding: [0x20,0x38,0x30,0x4e]
17*9880d681SAndroid Build Coastguard Worker// CHECK: saddlv	s0, v1.4h               // encoding: [0x20,0x38,0x70,0x0e]
18*9880d681SAndroid Build Coastguard Worker// CHECK: saddlv	s0, v1.8h               // encoding: [0x20,0x38,0x70,0x4e]
19*9880d681SAndroid Build Coastguard Worker// CHECK: saddlv	d0, v1.4s               // encoding: [0x20,0x38,0xb0,0x4e]
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker        uaddlv h0, v1.8b
22*9880d681SAndroid Build Coastguard Worker        uaddlv h0, v1.16b
23*9880d681SAndroid Build Coastguard Worker        uaddlv s0, v1.4h
24*9880d681SAndroid Build Coastguard Worker        uaddlv s0, v1.8h
25*9880d681SAndroid Build Coastguard Worker        uaddlv d0, v1.4s
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker// CHECK: uaddlv	h0, v1.8b               // encoding: [0x20,0x38,0x30,0x2e]
28*9880d681SAndroid Build Coastguard Worker// CHECK: uaddlv	h0, v1.16b              // encoding: [0x20,0x38,0x30,0x6e]
29*9880d681SAndroid Build Coastguard Worker// CHECK: uaddlv	s0, v1.4h               // encoding: [0x20,0x38,0x70,0x2e]
30*9880d681SAndroid Build Coastguard Worker// CHECK: uaddlv	s0, v1.8h               // encoding: [0x20,0x38,0x70,0x6e]
31*9880d681SAndroid Build Coastguard Worker// CHECK: uaddlv	d0, v1.4s               // encoding: [0x20,0x38,0xb0,0x6e]
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Worker        smaxv b0, v1.8b
34*9880d681SAndroid Build Coastguard Worker        smaxv b0, v1.16b
35*9880d681SAndroid Build Coastguard Worker        smaxv h0, v1.4h
36*9880d681SAndroid Build Coastguard Worker        smaxv h0, v1.8h
37*9880d681SAndroid Build Coastguard Worker        smaxv s0, v1.4s
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Worker// CHECK: smaxv	b0, v1.8b               // encoding: [0x20,0xa8,0x30,0x0e]
40*9880d681SAndroid Build Coastguard Worker// CHECK: smaxv	b0, v1.16b              // encoding: [0x20,0xa8,0x30,0x4e]
41*9880d681SAndroid Build Coastguard Worker// CHECK: smaxv	h0, v1.4h               // encoding: [0x20,0xa8,0x70,0x0e]
42*9880d681SAndroid Build Coastguard Worker// CHECK: smaxv	h0, v1.8h               // encoding: [0x20,0xa8,0x70,0x4e]
43*9880d681SAndroid Build Coastguard Worker// CHECK: smaxv	s0, v1.4s               // encoding: [0x20,0xa8,0xb0,0x4e]
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker        sminv b0, v1.8b
46*9880d681SAndroid Build Coastguard Worker        sminv b0, v1.16b
47*9880d681SAndroid Build Coastguard Worker        sminv h0, v1.4h
48*9880d681SAndroid Build Coastguard Worker        sminv h0, v1.8h
49*9880d681SAndroid Build Coastguard Worker        sminv s0, v1.4s
50*9880d681SAndroid Build Coastguard Worker
51*9880d681SAndroid Build Coastguard Worker// CHECK: sminv	b0, v1.8b               // encoding: [0x20,0xa8,0x31,0x0e]
52*9880d681SAndroid Build Coastguard Worker// CHECK: sminv	b0, v1.16b              // encoding: [0x20,0xa8,0x31,0x4e]
53*9880d681SAndroid Build Coastguard Worker// CHECK: sminv	h0, v1.4h               // encoding: [0x20,0xa8,0x71,0x0e]
54*9880d681SAndroid Build Coastguard Worker// CHECK: sminv	h0, v1.8h               // encoding: [0x20,0xa8,0x71,0x4e]
55*9880d681SAndroid Build Coastguard Worker// CHECK: sminv	s0, v1.4s               // encoding: [0x20,0xa8,0xb1,0x4e]
56*9880d681SAndroid Build Coastguard Worker
57*9880d681SAndroid Build Coastguard Worker        umaxv b0, v1.8b
58*9880d681SAndroid Build Coastguard Worker        umaxv b0, v1.16b
59*9880d681SAndroid Build Coastguard Worker        umaxv h0, v1.4h
60*9880d681SAndroid Build Coastguard Worker        umaxv h0, v1.8h
61*9880d681SAndroid Build Coastguard Worker        umaxv s0, v1.4s
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Worker// CHECK: umaxv	b0, v1.8b               // encoding: [0x20,0xa8,0x30,0x2e]
64*9880d681SAndroid Build Coastguard Worker// CHECK: umaxv	b0, v1.16b              // encoding: [0x20,0xa8,0x30,0x6e]
65*9880d681SAndroid Build Coastguard Worker// CHECK: umaxv	h0, v1.4h               // encoding: [0x20,0xa8,0x70,0x2e]
66*9880d681SAndroid Build Coastguard Worker// CHECK: umaxv	h0, v1.8h               // encoding: [0x20,0xa8,0x70,0x6e]
67*9880d681SAndroid Build Coastguard Worker// CHECK: umaxv	s0, v1.4s               // encoding: [0x20,0xa8,0xb0,0x6e]
68*9880d681SAndroid Build Coastguard Worker
69*9880d681SAndroid Build Coastguard Worker        uminv b0, v1.8b
70*9880d681SAndroid Build Coastguard Worker        uminv b0, v1.16b
71*9880d681SAndroid Build Coastguard Worker        uminv h0, v1.4h
72*9880d681SAndroid Build Coastguard Worker        uminv h0, v1.8h
73*9880d681SAndroid Build Coastguard Worker        uminv s0, v1.4s
74*9880d681SAndroid Build Coastguard Worker
75*9880d681SAndroid Build Coastguard Worker// CHECK: uminv	b0, v1.8b               // encoding: [0x20,0xa8,0x31,0x2e]
76*9880d681SAndroid Build Coastguard Worker// CHECK: uminv	b0, v1.16b              // encoding: [0x20,0xa8,0x31,0x6e]
77*9880d681SAndroid Build Coastguard Worker// CHECK: uminv	h0, v1.4h               // encoding: [0x20,0xa8,0x71,0x2e]
78*9880d681SAndroid Build Coastguard Worker// CHECK: uminv	h0, v1.8h               // encoding: [0x20,0xa8,0x71,0x6e]
79*9880d681SAndroid Build Coastguard Worker// CHECK: uminv	s0, v1.4s               // encoding: [0x20,0xa8,0xb1,0x6e]
80*9880d681SAndroid Build Coastguard Worker
81*9880d681SAndroid Build Coastguard Worker        addv b0, v1.8b
82*9880d681SAndroid Build Coastguard Worker        addv b0, v1.16b
83*9880d681SAndroid Build Coastguard Worker        addv h0, v1.4h
84*9880d681SAndroid Build Coastguard Worker        addv h0, v1.8h
85*9880d681SAndroid Build Coastguard Worker        addv s0, v1.4s
86*9880d681SAndroid Build Coastguard Worker
87*9880d681SAndroid Build Coastguard Worker// CHECK: addv	b0, v1.8b               // encoding: [0x20,0xb8,0x31,0x0e]
88*9880d681SAndroid Build Coastguard Worker// CHECK: addv	b0, v1.16b              // encoding: [0x20,0xb8,0x31,0x4e]
89*9880d681SAndroid Build Coastguard Worker// CHECK: addv	h0, v1.4h               // encoding: [0x20,0xb8,0x71,0x0e]
90*9880d681SAndroid Build Coastguard Worker// CHECK: addv	h0, v1.8h               // encoding: [0x20,0xb8,0x71,0x4e]
91*9880d681SAndroid Build Coastguard Worker// CHECK: addv	s0, v1.4s               // encoding: [0x20,0xb8,0xb1,0x4e]
92*9880d681SAndroid Build Coastguard Worker
93*9880d681SAndroid Build Coastguard Worker        fmaxnmv h0, v1.4h
94*9880d681SAndroid Build Coastguard Worker        fminnmv h0, v1.4h
95*9880d681SAndroid Build Coastguard Worker        fmaxv h0, v1.4h
96*9880d681SAndroid Build Coastguard Worker        fminv h0, v1.4h
97*9880d681SAndroid Build Coastguard Worker        fmaxnmv h0, v1.8h
98*9880d681SAndroid Build Coastguard Worker        fminnmv h0, v1.8h
99*9880d681SAndroid Build Coastguard Worker        fmaxv h0, v1.8h
100*9880d681SAndroid Build Coastguard Worker        fminv h0, v1.8h
101*9880d681SAndroid Build Coastguard Worker        fmaxnmv s0, v1.4s
102*9880d681SAndroid Build Coastguard Worker        fminnmv s0, v1.4s
103*9880d681SAndroid Build Coastguard Worker        fmaxv s0, v1.4s
104*9880d681SAndroid Build Coastguard Worker        fminv s0, v1.4s
105*9880d681SAndroid Build Coastguard Worker
106*9880d681SAndroid Build Coastguard Worker// CHECK: fmaxnmv h0, v1.4h               // encoding: [0x20,0xc8,0x30,0x0e]
107*9880d681SAndroid Build Coastguard Worker// CHECK: fminnmv h0, v1.4h               // encoding: [0x20,0xc8,0xb0,0x0e]
108*9880d681SAndroid Build Coastguard Worker// CHECK: fmaxv   h0, v1.4h               // encoding: [0x20,0xf8,0x30,0x0e]
109*9880d681SAndroid Build Coastguard Worker// CHECK: fminv   h0, v1.4h               // encoding: [0x20,0xf8,0xb0,0x0e]
110*9880d681SAndroid Build Coastguard Worker// CHECK: fmaxnmv h0, v1.8h               // encoding: [0x20,0xc8,0x30,0x4e]
111*9880d681SAndroid Build Coastguard Worker// CHECK: fminnmv h0, v1.8h               // encoding: [0x20,0xc8,0xb0,0x4e]
112*9880d681SAndroid Build Coastguard Worker// CHECK: fmaxv   h0, v1.8h               // encoding: [0x20,0xf8,0x30,0x4e]
113*9880d681SAndroid Build Coastguard Worker// CHECK: fminv   h0, v1.8h               // encoding: [0x20,0xf8,0xb0,0x4e]
114*9880d681SAndroid Build Coastguard Worker// CHECK: fmaxnmv	s0, v1.4s               // encoding: [0x20,0xc8,0x30,0x6e]
115*9880d681SAndroid Build Coastguard Worker// CHECK: fminnmv	s0, v1.4s               // encoding: [0x20,0xc8,0xb0,0x6e]
116*9880d681SAndroid Build Coastguard Worker// CHECK: fmaxv	s0, v1.4s               // encoding: [0x20,0xf8,0x30,0x6e]
117*9880d681SAndroid Build Coastguard Worker// CHECK: fminv	s0, v1.4s               // encoding: [0x20,0xf8,0xb0,0x6e]
118