AArch64/ARM64: accept and print floating-point immediate 0 as "#0.0"
[oota-llvm.git] / test / MC / AArch64 / neon-scalar-fp-compare.s
1 // RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
2 // RUN: llvm-mc -triple arm64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
3
4 // Check that the assembler can handle the documented syntax for AArch64
5
6 //----------------------------------------------------------------------
7 // Scalar Floating-point Compare Mask Equal
8 //----------------------------------------------------------------------
9
10          fcmeq s10, s11, s12
11          fcmeq d20, d21, d22
12
13 // CHECK: fcmeq s10, s11, s12   // encoding: [0x6a,0xe5,0x2c,0x5e]
14 // CHECK: fcmeq d20, d21, d22   // encoding: [0xb4,0xe6,0x76,0x5e]
15
16 //----------------------------------------------------------------------
17 // Scalar Floating-point Compare Mask Equal To Zero
18 //----------------------------------------------------------------------
19
20          fcmeq s10, s11, #0.0
21          fcmeq d20, d21, #0.0
22          fcmeq s10, s11, #0
23          fcmeq d20, d21, #0x0
24
25 // CHECK: fcmeq s10, s11, #0.0   // encoding: [0x6a,0xd9,0xa0,0x5e]
26 // CHECK: fcmeq d20, d21, #0.0   // encoding: [0xb4,0xda,0xe0,0x5e]
27 // CHECK: fcmeq s10, s11, #0.0   // encoding: [0x6a,0xd9,0xa0,0x5e]
28 // CHECK: fcmeq d20, d21, #0.0   // encoding: [0xb4,0xda,0xe0,0x5e]
29
30 //----------------------------------------------------------------------
31 // Scalar Floating-point Compare Mask Greater Than Or Equal
32 //----------------------------------------------------------------------
33
34          fcmge s10, s11, s12
35          fcmge d20, d21, d22
36
37 // CHECK: fcmge s10, s11, s12   // encoding: [0x6a,0xe5,0x2c,0x7e]
38 // CHECK: fcmge d20, d21, d22   // encoding: [0xb4,0xe6,0x76,0x7e]
39
40 //----------------------------------------------------------------------
41 // Scalar Floating-point Compare Mask Greater Than Or Equal To Zero
42 //----------------------------------------------------------------------
43
44          fcmge s10, s11, #0.0
45          fcmge d20, d21, #0.0
46          fcmge s10, s11, #0
47          fcmge d20, d21, #0x0
48
49 // CHECK: fcmge s10, s11, #0.0   // encoding: [0x6a,0xc9,0xa0,0x7e]
50 // CHECK: fcmge d20, d21, #0.0   // encoding: [0xb4,0xca,0xe0,0x7e]
51 // CHECK: fcmge s10, s11, #0.0   // encoding: [0x6a,0xc9,0xa0,0x7e]
52 // CHECK: fcmge d20, d21, #0.0   // encoding: [0xb4,0xca,0xe0,0x7e]
53
54 //----------------------------------------------------------------------
55 // Scalar Floating-point Compare Mask Greather Than
56 //----------------------------------------------------------------------
57
58          fcmgt s10, s11, s12
59          fcmgt d20, d21, d22
60
61 // CHECK: fcmgt s10, s11, s12   // encoding: [0x6a,0xe5,0xac,0x7e]
62 // CHECK: fcmgt d20, d21, d22   // encoding: [0xb4,0xe6,0xf6,0x7e]
63
64 //----------------------------------------------------------------------
65 // Scalar Floating-point Compare Mask Greather Than Zero
66 //----------------------------------------------------------------------
67
68          fcmgt s10, s11, #0.0
69          fcmgt d20, d21, #0.0
70          fcmgt s10, s11, #0
71          fcmgt d20, d21, #0x0
72
73 // CHECK: fcmgt s10, s11, #0.0   // encoding: [0x6a,0xc9,0xa0,0x5e]
74 // CHECK: fcmgt d20, d21, #0.0   // encoding: [0xb4,0xca,0xe0,0x5e]
75 // CHECK: fcmgt s10, s11, #0.0   // encoding: [0x6a,0xc9,0xa0,0x5e]
76 // CHECK: fcmgt d20, d21, #0.0   // encoding: [0xb4,0xca,0xe0,0x5e]
77
78 //----------------------------------------------------------------------
79 // Scalar Floating-point Compare Mask Less Than Or Equal To Zero
80 //----------------------------------------------------------------------
81
82          fcmle s10, s11, #0.0
83          fcmle d20, d21, #0.0
84          fcmle s10, s11, #0
85          fcmle d20, d21, #0x0
86
87 // CHECK: fcmle s10, s11, #0.0   // encoding: [0x6a,0xd9,0xa0,0x7e]
88 // CHECK: fcmle d20, d21, #0.0   // encoding: [0xb4,0xda,0xe0,0x7e]
89 // CHECK: fcmle s10, s11, #0.0   // encoding: [0x6a,0xd9,0xa0,0x7e]
90 // CHECK: fcmle d20, d21, #0.0   // encoding: [0xb4,0xda,0xe0,0x7e]
91
92 //----------------------------------------------------------------------
93 // Scalar Floating-point Compare Mask Less Than
94 //----------------------------------------------------------------------
95
96          fcmlt s10, s11, #0.0
97          fcmlt d20, d21, #0.0
98          fcmlt s10, s11, #0
99          fcmlt d20, d21, #0x0
100
101 // CHECK: fcmlt s10, s11, #0.0   // encoding: [0x6a,0xe9,0xa0,0x5e]
102 // CHECK: fcmlt d20, d21, #0.0   // encoding: [0xb4,0xea,0xe0,0x5e]
103 // CHECK: fcmlt s10, s11, #0.0   // encoding: [0x6a,0xe9,0xa0,0x5e]
104 // CHECK: fcmlt d20, d21, #0.0   // encoding: [0xb4,0xea,0xe0,0x5e]
105
106 //----------------------------------------------------------------------
107 // Scalar Floating-point Absolute Compare Mask Greater Than Or Equal
108 //----------------------------------------------------------------------
109
110          facge s10, s11, s12
111          facge d20, d21, d22
112
113 // CHECK: facge s10, s11, s12    // encoding: [0x6a,0xed,0x2c,0x7e]
114 // CHECK: facge d20, d21, d22    // encoding: [0xb4,0xee,0x76,0x7e]
115
116 //----------------------------------------------------------------------
117 // Scalar Floating-point Absolute Compare Mask Greater Than
118 //----------------------------------------------------------------------
119
120          facgt s10, s11, s12
121          facgt d20, d21, d22
122
123 // CHECK: facgt s10, s11, s12   // encoding: [0x6a,0xed,0xac,0x7e]
124 // CHECK: facgt d20, d21, d22   // encoding: [0xb4,0xee,0xf6,0x7e]