Home | History | Annotate | Download | only in AArch64
      1 // RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s
      2 
      3 // Check that the assembler can handle the documented syntax for AArch64
      4 
      5 //----------------------------------------------------------------------
      6 // Scalar Floating-point Compare Mask Equal
      7 //----------------------------------------------------------------------
      8 
      9          fcmeq h10, h11, h12
     10          fcmeq s10, s11, s12
     11          fcmeq d20, d21, d22
     12 
     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]
     16 
     17 //----------------------------------------------------------------------
     18 // Scalar Floating-point Compare Mask Equal To Zero
     19 //----------------------------------------------------------------------
     20 
     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
     27 
     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]
     34 
     35 //----------------------------------------------------------------------
     36 // Scalar Floating-point Compare Mask Greater Than Or Equal
     37 //----------------------------------------------------------------------
     38 
     39          fcmge h10, h11, h12
     40          fcmge s10, s11, s12
     41          fcmge d20, d21, d22
     42 
     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]
     46 
     47 //----------------------------------------------------------------------
     48 // Scalar Floating-point Compare Mask Greater Than Or Equal To Zero
     49 //----------------------------------------------------------------------
     50 
     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
     57 
     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]
     64 
     65 //----------------------------------------------------------------------
     66 // Scalar Floating-point Compare Mask Greather Than
     67 //----------------------------------------------------------------------
     68 
     69          fcmgt h10, h11, h12
     70          fcmgt s10, s11, s12
     71          fcmgt d20, d21, d22
     72 
     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]
     76 
     77 //----------------------------------------------------------------------
     78 // Scalar Floating-point Compare Mask Greather Than Zero
     79 //----------------------------------------------------------------------
     80 
     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
     87 
     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]
     94 
     95 //----------------------------------------------------------------------
     96 // Scalar Floating-point Compare Mask Less Than Or Equal To Zero
     97 //----------------------------------------------------------------------
     98 
     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
    105 
    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]
    112 
    113 //----------------------------------------------------------------------
    114 // Scalar Floating-point Compare Mask Less Than
    115 //----------------------------------------------------------------------
    116 
    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
    123 
    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]
    130 
    131 //----------------------------------------------------------------------
    132 // Scalar Floating-point Absolute Compare Mask Greater Than Or Equal
    133 //----------------------------------------------------------------------
    134 
    135          facge h10, h11, h12
    136          facge s10, s11, s12
    137          facge d20, d21, d22
    138 
    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]
    142 
    143 //----------------------------------------------------------------------
    144 // Scalar Floating-point Absolute Compare Mask Greater Than
    145 //----------------------------------------------------------------------
    146 
    147          facgt h10, h11, h12
    148          facgt s10, s11, s12
    149          facgt d20, d21, d22
    150 
    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]
    154