[ARM] Better OR's for MVE compares
[llvm-core.git] / test / MC / AArch64 / neon-scalar-fp-compare.s
blob0b91d945a719378ecc8aa87c1332bf4284ad80cb
1 // RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s
3 // Check that the assembler can handle the documented syntax for AArch64
5 //----------------------------------------------------------------------
6 // Scalar Floating-point Compare Mask Equal
7 //----------------------------------------------------------------------
9 fcmeq h10, h11, h12
10 fcmeq s10, s11, s12
11 fcmeq d20, d21, d22
13 // CHECK: fcmeq h10, h11, h12 // encoding: [0x6a,0x25,0x4c,0x5e]
14 // CHECK: fcmeq s10, s11, s12 // encoding: [0x6a,0xe5,0x2c,0x5e]
15 // CHECK: fcmeq d20, d21, d22 // encoding: [0xb4,0xe6,0x76,0x5e]
17 //----------------------------------------------------------------------
18 // Scalar Floating-point Compare Mask Equal To Zero
19 //----------------------------------------------------------------------
21 fcmeq h10, h11, #0.0
22 fcmeq s10, s11, #0.0
23 fcmeq d20, d21, #0.0
24 fcmeq h10, h11, #0
25 fcmeq s10, s11, #0
26 fcmeq d20, d21, #0x0
28 // CHECK: fcmeq h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x5e]
29 // CHECK: fcmeq s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x5e]
30 // CHECK: fcmeq d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x5e]
31 // CHECK: fcmeq h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x5e]
32 // CHECK: fcmeq s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x5e]
33 // CHECK: fcmeq d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x5e]
35 //----------------------------------------------------------------------
36 // Scalar Floating-point Compare Mask Greater Than Or Equal
37 //----------------------------------------------------------------------
39 fcmge h10, h11, h12
40 fcmge s10, s11, s12
41 fcmge d20, d21, d22
43 // CHECK: fcmge h10, h11, h12 // encoding: [0x6a,0x25,0x4c,0x7e]
44 // CHECK: fcmge s10, s11, s12 // encoding: [0x6a,0xe5,0x2c,0x7e]
45 // CHECK: fcmge d20, d21, d22 // encoding: [0xb4,0xe6,0x76,0x7e]
47 //----------------------------------------------------------------------
48 // Scalar Floating-point Compare Mask Greater Than Or Equal To Zero
49 //----------------------------------------------------------------------
51 fcmge h10, h11, #0.0
52 fcmge s10, s11, #0.0
53 fcmge d20, d21, #0.0
54 fcmge h10, h11, #0
55 fcmge s10, s11, #0
56 fcmge d20, d21, #0x0
58 // CHECK: fcmge h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x7e]
59 // CHECK: fcmge s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x7e]
60 // CHECK: fcmge d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x7e]
61 // CHECK: fcmge h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x7e]
62 // CHECK: fcmge s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x7e]
63 // CHECK: fcmge d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x7e]
65 //----------------------------------------------------------------------
66 // Scalar Floating-point Compare Mask Greather Than
67 //----------------------------------------------------------------------
69 fcmgt h10, h11, h12
70 fcmgt s10, s11, s12
71 fcmgt d20, d21, d22
73 // CHECK: fcmgt h10, h11, h12 // encoding: [0x6a,0x25,0xcc,0x7e]
74 // CHECK: fcmgt s10, s11, s12 // encoding: [0x6a,0xe5,0xac,0x7e]
75 // CHECK: fcmgt d20, d21, d22 // encoding: [0xb4,0xe6,0xf6,0x7e]
77 //----------------------------------------------------------------------
78 // Scalar Floating-point Compare Mask Greather Than Zero
79 //----------------------------------------------------------------------
81 fcmgt h10, h11, #0.0
82 fcmgt s10, s11, #0.0
83 fcmgt d20, d21, #0.0
84 fcmgt h10, h11, #0
85 fcmgt s10, s11, #0
86 fcmgt d20, d21, #0x0
88 // CHECK: fcmgt h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x5e]
89 // CHECK: fcmgt s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x5e]
90 // CHECK: fcmgt d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x5e]
91 // CHECK: fcmgt h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x5e]
92 // CHECK: fcmgt s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x5e]
93 // CHECK: fcmgt d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x5e]
95 //----------------------------------------------------------------------
96 // Scalar Floating-point Compare Mask Less Than Or Equal To Zero
97 //----------------------------------------------------------------------
99 fcmle h10, h11, #0.0
100 fcmle s10, s11, #0.0
101 fcmle d20, d21, #0.0
102 fcmle h10, h11, #0
103 fcmle s10, s11, #0
104 fcmle d20, d21, #0x0
106 // CHECK: fcmle h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x7e]
107 // CHECK: fcmle s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x7e]
108 // CHECK: fcmle d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x7e]
109 // CHECK: fcmle h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x7e]
110 // CHECK: fcmle s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x7e]
111 // CHECK: fcmle d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x7e]
113 //----------------------------------------------------------------------
114 // Scalar Floating-point Compare Mask Less Than
115 //----------------------------------------------------------------------
117 fcmlt h10, h11, #0.0
118 fcmlt s10, s11, #0.0
119 fcmlt d20, d21, #0.0
120 fcmlt h10, h11, #0
121 fcmlt s10, s11, #0
122 fcmlt d20, d21, #0x0
124 // CHECK: fcmlt h10, h11, #0.0 // encoding: [0x6a,0xe9,0xf8,0x5e]
125 // CHECK: fcmlt s10, s11, #0.0 // encoding: [0x6a,0xe9,0xa0,0x5e]
126 // CHECK: fcmlt d20, d21, #0.0 // encoding: [0xb4,0xea,0xe0,0x5e]
127 // CHECK: fcmlt h10, h11, #0.0 // encoding: [0x6a,0xe9,0xf8,0x5e]
128 // CHECK: fcmlt s10, s11, #0.0 // encoding: [0x6a,0xe9,0xa0,0x5e]
129 // CHECK: fcmlt d20, d21, #0.0 // encoding: [0xb4,0xea,0xe0,0x5e]
131 //----------------------------------------------------------------------
132 // Scalar Floating-point Absolute Compare Mask Greater Than Or Equal
133 //----------------------------------------------------------------------
135 facge h10, h11, h12
136 facge s10, s11, s12
137 facge d20, d21, d22
139 // CHECK: facge h10, h11, h12 // encoding: [0x6a,0x2d,0x4c,0x7e]
140 // CHECK: facge s10, s11, s12 // encoding: [0x6a,0xed,0x2c,0x7e]
141 // CHECK: facge d20, d21, d22 // encoding: [0xb4,0xee,0x76,0x7e]
143 //----------------------------------------------------------------------
144 // Scalar Floating-point Absolute Compare Mask Greater Than
145 //----------------------------------------------------------------------
147 facgt h10, h11, h12
148 facgt s10, s11, s12
149 facgt d20, d21, d22
151 // CHECK: facgt h10, h11, h12 // encoding: [0x6a,0x2d,0xcc,0x7e]
152 // CHECK: facgt s10, s11, s12 // encoding: [0x6a,0xed,0xac,0x7e]
153 // CHECK: facgt d20, d21, d22 // encoding: [0xb4,0xee,0xf6,0x7e]