xref: /aosp_15_r20/external/llvm/test/MC/AArch64/neon-scalar-fp-compare.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple aarch64-none-linux-gnu -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// Scalar Floating-point Compare Mask Equal
7*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker         fcmeq h10, h11, h12
10*9880d681SAndroid Build Coastguard Worker         fcmeq s10, s11, s12
11*9880d681SAndroid Build Coastguard Worker         fcmeq d20, d21, d22
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq   h10, h11, h12           // encoding: [0x6a,0x25,0x4c,0x5e]
14*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq s10, s11, s12   // encoding: [0x6a,0xe5,0x2c,0x5e]
15*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq d20, d21, d22   // encoding: [0xb4,0xe6,0x76,0x5e]
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
18*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Equal To Zero
19*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker         fcmeq h10, h11, #0.0
22*9880d681SAndroid Build Coastguard Worker         fcmeq s10, s11, #0.0
23*9880d681SAndroid Build Coastguard Worker         fcmeq d20, d21, #0.0
24*9880d681SAndroid Build Coastguard Worker         fcmeq h10, h11, #0
25*9880d681SAndroid Build Coastguard Worker         fcmeq s10, s11, #0
26*9880d681SAndroid Build Coastguard Worker         fcmeq d20, d21, #0x0
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq   h10, h11, #0.0          // encoding: [0x6a,0xd9,0xf8,0x5e]
29*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq s10, s11, #0.0   // encoding: [0x6a,0xd9,0xa0,0x5e]
30*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq d20, d21, #0.0   // encoding: [0xb4,0xda,0xe0,0x5e]
31*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq   h10, h11, #0.0          // encoding: [0x6a,0xd9,0xf8,0x5e]
32*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq s10, s11, #0.0   // encoding: [0x6a,0xd9,0xa0,0x5e]
33*9880d681SAndroid Build Coastguard Worker// CHECK: fcmeq d20, d21, #0.0   // encoding: [0xb4,0xda,0xe0,0x5e]
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
36*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Greater Than Or Equal
37*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Worker         fcmge h10, h11, h12
40*9880d681SAndroid Build Coastguard Worker         fcmge s10, s11, s12
41*9880d681SAndroid Build Coastguard Worker         fcmge d20, d21, d22
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge   h10, h11, h12           // encoding: [0x6a,0x25,0x4c,0x7e]
44*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge s10, s11, s12   // encoding: [0x6a,0xe5,0x2c,0x7e]
45*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge d20, d21, d22   // encoding: [0xb4,0xe6,0x76,0x7e]
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
48*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Greater Than Or Equal To Zero
49*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
50*9880d681SAndroid Build Coastguard Worker
51*9880d681SAndroid Build Coastguard Worker         fcmge h10, h11, #0.0
52*9880d681SAndroid Build Coastguard Worker         fcmge s10, s11, #0.0
53*9880d681SAndroid Build Coastguard Worker         fcmge d20, d21, #0.0
54*9880d681SAndroid Build Coastguard Worker         fcmge h10, h11, #0
55*9880d681SAndroid Build Coastguard Worker         fcmge s10, s11, #0
56*9880d681SAndroid Build Coastguard Worker         fcmge d20, d21, #0x0
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge   h10, h11, #0.0          // encoding: [0x6a,0xc9,0xf8,0x7e]
59*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge s10, s11, #0.0   // encoding: [0x6a,0xc9,0xa0,0x7e]
60*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge d20, d21, #0.0   // encoding: [0xb4,0xca,0xe0,0x7e]
61*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge   h10, h11, #0.0          // encoding: [0x6a,0xc9,0xf8,0x7e]
62*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge s10, s11, #0.0   // encoding: [0x6a,0xc9,0xa0,0x7e]
63*9880d681SAndroid Build Coastguard Worker// CHECK: fcmge d20, d21, #0.0   // encoding: [0xb4,0xca,0xe0,0x7e]
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
66*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Greather Than
67*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
68*9880d681SAndroid Build Coastguard Worker
69*9880d681SAndroid Build Coastguard Worker         fcmgt h10, h11, h12
70*9880d681SAndroid Build Coastguard Worker         fcmgt s10, s11, s12
71*9880d681SAndroid Build Coastguard Worker         fcmgt d20, d21, d22
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt   h10, h11, h12           // encoding: [0x6a,0x25,0xcc,0x7e]
74*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt s10, s11, s12   // encoding: [0x6a,0xe5,0xac,0x7e]
75*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt d20, d21, d22   // encoding: [0xb4,0xe6,0xf6,0x7e]
76*9880d681SAndroid Build Coastguard Worker
77*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
78*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Greather Than Zero
79*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
80*9880d681SAndroid Build Coastguard Worker
81*9880d681SAndroid Build Coastguard Worker         fcmgt h10, h11, #0.0
82*9880d681SAndroid Build Coastguard Worker         fcmgt s10, s11, #0.0
83*9880d681SAndroid Build Coastguard Worker         fcmgt d20, d21, #0.0
84*9880d681SAndroid Build Coastguard Worker         fcmgt h10, h11, #0
85*9880d681SAndroid Build Coastguard Worker         fcmgt s10, s11, #0
86*9880d681SAndroid Build Coastguard Worker         fcmgt d20, d21, #0x0
87*9880d681SAndroid Build Coastguard Worker
88*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt   h10, h11, #0.0          // encoding: [0x6a,0xc9,0xf8,0x5e]
89*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt s10, s11, #0.0   // encoding: [0x6a,0xc9,0xa0,0x5e]
90*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt d20, d21, #0.0   // encoding: [0xb4,0xca,0xe0,0x5e]
91*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt   h10, h11, #0.0          // encoding: [0x6a,0xc9,0xf8,0x5e]
92*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt s10, s11, #0.0   // encoding: [0x6a,0xc9,0xa0,0x5e]
93*9880d681SAndroid Build Coastguard Worker// CHECK: fcmgt d20, d21, #0.0   // encoding: [0xb4,0xca,0xe0,0x5e]
94*9880d681SAndroid Build Coastguard Worker
95*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
96*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Less Than Or Equal To Zero
97*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
98*9880d681SAndroid Build Coastguard Worker
99*9880d681SAndroid Build Coastguard Worker         fcmle h10, h11, #0.0
100*9880d681SAndroid Build Coastguard Worker         fcmle s10, s11, #0.0
101*9880d681SAndroid Build Coastguard Worker         fcmle d20, d21, #0.0
102*9880d681SAndroid Build Coastguard Worker         fcmle h10, h11, #0
103*9880d681SAndroid Build Coastguard Worker         fcmle s10, s11, #0
104*9880d681SAndroid Build Coastguard Worker         fcmle d20, d21, #0x0
105*9880d681SAndroid Build Coastguard Worker
106*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle   h10, h11, #0.0          // encoding: [0x6a,0xd9,0xf8,0x7e]
107*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle s10, s11, #0.0   // encoding: [0x6a,0xd9,0xa0,0x7e]
108*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle d20, d21, #0.0   // encoding: [0xb4,0xda,0xe0,0x7e]
109*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle   h10, h11, #0.0          // encoding: [0x6a,0xd9,0xf8,0x7e]
110*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle s10, s11, #0.0   // encoding: [0x6a,0xd9,0xa0,0x7e]
111*9880d681SAndroid Build Coastguard Worker// CHECK: fcmle d20, d21, #0.0   // encoding: [0xb4,0xda,0xe0,0x7e]
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
114*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Compare Mask Less Than
115*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
116*9880d681SAndroid Build Coastguard Worker
117*9880d681SAndroid Build Coastguard Worker         fcmlt h10, h11, #0.0
118*9880d681SAndroid Build Coastguard Worker         fcmlt s10, s11, #0.0
119*9880d681SAndroid Build Coastguard Worker         fcmlt d20, d21, #0.0
120*9880d681SAndroid Build Coastguard Worker         fcmlt h10, h11, #0
121*9880d681SAndroid Build Coastguard Worker         fcmlt s10, s11, #0
122*9880d681SAndroid Build Coastguard Worker         fcmlt d20, d21, #0x0
123*9880d681SAndroid Build Coastguard Worker
124*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt   h10, h11, #0.0          // encoding: [0x6a,0xe9,0xf8,0x5e]
125*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt s10, s11, #0.0   // encoding: [0x6a,0xe9,0xa0,0x5e]
126*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt d20, d21, #0.0   // encoding: [0xb4,0xea,0xe0,0x5e]
127*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt   h10, h11, #0.0          // encoding: [0x6a,0xe9,0xf8,0x5e]
128*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt s10, s11, #0.0   // encoding: [0x6a,0xe9,0xa0,0x5e]
129*9880d681SAndroid Build Coastguard Worker// CHECK: fcmlt d20, d21, #0.0   // encoding: [0xb4,0xea,0xe0,0x5e]
130*9880d681SAndroid Build Coastguard Worker
131*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
132*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Absolute Compare Mask Greater Than Or Equal
133*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
134*9880d681SAndroid Build Coastguard Worker
135*9880d681SAndroid Build Coastguard Worker         facge h10, h11, h12
136*9880d681SAndroid Build Coastguard Worker         facge s10, s11, s12
137*9880d681SAndroid Build Coastguard Worker         facge d20, d21, d22
138*9880d681SAndroid Build Coastguard Worker
139*9880d681SAndroid Build Coastguard Worker// CHECK: facge   h10, h11, h12           // encoding: [0x6a,0x2d,0x4c,0x7e]
140*9880d681SAndroid Build Coastguard Worker// CHECK: facge s10, s11, s12    // encoding: [0x6a,0xed,0x2c,0x7e]
141*9880d681SAndroid Build Coastguard Worker// CHECK: facge d20, d21, d22    // encoding: [0xb4,0xee,0x76,0x7e]
142*9880d681SAndroid Build Coastguard Worker
143*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
144*9880d681SAndroid Build Coastguard Worker// Scalar Floating-point Absolute Compare Mask Greater Than
145*9880d681SAndroid Build Coastguard Worker//----------------------------------------------------------------------
146*9880d681SAndroid Build Coastguard Worker
147*9880d681SAndroid Build Coastguard Worker         facgt h10, h11, h12
148*9880d681SAndroid Build Coastguard Worker         facgt s10, s11, s12
149*9880d681SAndroid Build Coastguard Worker         facgt d20, d21, d22
150*9880d681SAndroid Build Coastguard Worker
151*9880d681SAndroid Build Coastguard Worker// CHECK: facgt   h10, h11, h12           // encoding: [0x6a,0x2d,0xcc,0x7e]
152*9880d681SAndroid Build Coastguard Worker// CHECK: facgt s10, s11, s12   // encoding: [0x6a,0xed,0xac,0x7e]
153*9880d681SAndroid Build Coastguard Worker// CHECK: facgt d20, d21, d22   // encoding: [0xb4,0xee,0xf6,0x7e]
154