Home | History | Annotate | Download | only in AArch64
      1 // RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
      2 
      3 // Check that the assembler can handle the documented syntax for AArch64
      4 
      5 //----------------------------------------------------------------------
      6 // Scalar Signed Integer Convert To Floating-point
      7 //----------------------------------------------------------------------
      8 
      9     scvtf s22, s13
     10     scvtf d21, d12
     11 
     12 // CHECK: scvtf s22, s13    // encoding: [0xb6,0xd9,0x21,0x5e]
     13 // CHECK: scvtf d21, d12    // encoding: [0x95,0xd9,0x61,0x5e]
     14 
     15 //----------------------------------------------------------------------
     16 // Scalar Unsigned Integer Convert To Floating-point
     17 //----------------------------------------------------------------------
     18 
     19     ucvtf s22, s13
     20     ucvtf d21, d14
     21 
     22 // CHECK: ucvtf s22, s13    // encoding: [0xb6,0xd9,0x21,0x7e]
     23 // CHECK: ucvtf d21, d14    // encoding: [0xd5,0xd9,0x61,0x7e]
     24 
     25 //----------------------------------------------------------------------
     26 // Scalar Signed Fixed-point Convert To Floating-Point (Immediate)
     27 //----------------------------------------------------------------------
     28 
     29     scvtf s22, s13, #32
     30     scvtf d21, d12, #64
     31 
     32 // CHECK: scvtf s22, s13, #32  // encoding: [0xb6,0xe5,0x20,0x5f]
     33 // CHECK: scvtf d21, d12, #64  // encoding: [0x95,0xe5,0x40,0x5f]
     34 
     35 //----------------------------------------------------------------------
     36 // Scalar Unsigned Fixed-point Convert To Floating-Point (Immediate)
     37 //----------------------------------------------------------------------
     38 
     39     ucvtf s22, s13, #32
     40     ucvtf d21, d14, #64
     41 
     42 // CHECK: ucvtf s22, s13, #32  // encoding: [0xb6,0xe5,0x20,0x7f]
     43 // CHECK: ucvtf d21, d14, #64  // encoding: [0xd5,0xe5,0x40,0x7f]
     44 
     45 //----------------------------------------------------------------------
     46 // Scalar Floating-point Convert To Signed Fixed-point (Immediate)
     47 //----------------------------------------------------------------------
     48 
     49     fcvtzs s21, s12, #1
     50     fcvtzs d21, d12, #1
     51 
     52 // CHECK: fcvtzs s21, s12, #1  // encoding: [0x95,0xfd,0x3f,0x5f]
     53 // CHECK: fcvtzs d21, d12, #1  // encoding: [0x95,0xfd,0x7f,0x5f]
     54 
     55 //----------------------------------------------------------------------
     56 // Scalar Floating-point Convert To Unsigned Fixed-point (Immediate)
     57 //----------------------------------------------------------------------
     58 
     59     fcvtzu s21, s12, #1
     60     fcvtzu d21, d12, #1
     61 
     62 // CHECK: fcvtzu s21, s12, #1  // encoding: [0x95,0xfd,0x3f,0x7f]
     63 // CHECK: fcvtzu d21, d12, #1  // encoding: [0x95,0xfd,0x7f,0x7f]
     64 
     65 //----------------------------------------------------------------------
     66 // Scalar Floating-point Convert To Lower Precision Narrow, Rounding To
     67 // Odd
     68 //----------------------------------------------------------------------
     69 
     70     fcvtxn s22, d13
     71 
     72 // CHECK: fcvtxn s22, d13    // encoding: [0xb6,0x69,0x61,0x7e]
     73 
     74 //----------------------------------------------------------------------
     75 // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest
     76 // With Ties To Away
     77 //----------------------------------------------------------------------
     78 
     79     fcvtas s12, s13
     80     fcvtas d21, d14
     81 
     82 // CHECK: fcvtas s12, s13    // encoding: [0xac,0xc9,0x21,0x5e]
     83 // CHECK: fcvtas d21, d14    // encoding: [0xd5,0xc9,0x61,0x5e]
     84 
     85 //----------------------------------------------------------------------
     86 // Scalar Floating-point Convert To Unsigned Integer, Rounding To
     87 // Nearest With Ties To Away
     88 //----------------------------------------------------------------------
     89 
     90     fcvtau s12, s13
     91     fcvtau d21, d14
     92 
     93 // CHECK: fcvtau s12, s13    // encoding: [0xac,0xc9,0x21,0x7e]
     94 // CHECK: fcvtau d21, d14    // encoding: [0xd5,0xc9,0x61,0x7e]
     95 
     96 //----------------------------------------------------------------------
     97 // Scalar Floating-point Convert To Signed Integer, Rounding Toward
     98 // Minus Infinity
     99 //----------------------------------------------------------------------
    100 
    101     fcvtms s22, s13
    102     fcvtms d21, d14
    103 
    104 // CHECK: fcvtms s22, s13    // encoding: [0xb6,0xb9,0x21,0x5e]
    105 // CHECK: fcvtms d21, d14    // encoding: [0xd5,0xb9,0x61,0x5e]
    106 
    107 //----------------------------------------------------------------------
    108 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
    109 // Minus Infinity
    110 //----------------------------------------------------------------------
    111 
    112     fcvtmu s12, s13
    113     fcvtmu d21, d14
    114 
    115 // CHECK: fcvtmu s12, s13    // encoding: [0xac,0xb9,0x21,0x7e]
    116 // CHECK: fcvtmu d21, d14    // encoding: [0xd5,0xb9,0x61,0x7e]
    117 
    118 //----------------------------------------------------------------------
    119 // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest
    120 // With Ties To Even
    121 //----------------------------------------------------------------------
    122 
    123     fcvtns s22, s13
    124     fcvtns d21, d14
    125 
    126 // CHECK: fcvtns s22, s13    // encoding: [0xb6,0xa9,0x21,0x5e]
    127 // CHECK: fcvtns d21, d14    // encoding: [0xd5,0xa9,0x61,0x5e]
    128 
    129 //----------------------------------------------------------------------
    130 // Scalar Floating-point Convert To Unsigned Integer, Rounding To
    131 // Nearest With Ties To Even
    132 //----------------------------------------------------------------------
    133 
    134     fcvtnu s12, s13
    135     fcvtnu d21, d14
    136 
    137 // CHECK: fcvtnu s12, s13    // encoding: [0xac,0xa9,0x21,0x7e]
    138 // CHECK: fcvtnu d21, d14    // encoding: [0xd5,0xa9,0x61,0x7e]
    139 
    140 //----------------------------------------------------------------------
    141 // Scalar Floating-point Convert To Signed Integer, Rounding Toward
    142 // Positive Infinity
    143 //----------------------------------------------------------------------
    144 
    145     fcvtps s22, s13
    146     fcvtps d21, d14
    147 
    148 // CHECK: fcvtps s22, s13    // encoding: [0xb6,0xa9,0xa1,0x5e]
    149 // CHECK: fcvtps d21, d14    // encoding: [0xd5,0xa9,0xe1,0x5e]
    150 
    151 //----------------------------------------------------------------------
    152 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
    153 // Positive Infinity
    154 //----------------------------------------------------------------------
    155 
    156     fcvtpu s12, s13
    157     fcvtpu d21, d14
    158 
    159 // CHECK: fcvtpu s12, s13    // encoding: [0xac,0xa9,0xa1,0x7e]
    160 // CHECK: fcvtpu d21, d14    // encoding: [0xd5,0xa9,0xe1,0x7e]
    161 
    162 //----------------------------------------------------------------------
    163 // Scalar Floating-point Convert To Signed Integer, Rounding Toward Zero
    164 //----------------------------------------------------------------------
    165 
    166     fcvtzs s12, s13
    167     fcvtzs d21, d14
    168 
    169 // CHECK: fcvtzs s12, s13    // encoding: [0xac,0xb9,0xa1,0x5e]
    170 // CHECK: fcvtzs d21, d14    // encoding: [0xd5,0xb9,0xe1,0x5e]
    171 
    172 //----------------------------------------------------------------------
    173 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward
    174 // Zero
    175 //----------------------------------------------------------------------
    176 
    177     fcvtzu s12, s13
    178     fcvtzu d21, d14
    179 
    180 // CHECK: fcvtzu s12, s13    // encoding: [0xac,0xb9,0xa1,0x7e]
    181 // CHECK: fcvtzu d21, d14    // encoding: [0xd5,0xb9,0xe1,0x7e]
    182