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 Signed Integer Convert To Floating-point 7 //---------------------------------------------------------------------- 8 9 scvtf h23, h14 10 scvtf s22, s13 11 scvtf d21, d12 12 13 // CHECK: scvtf h23, h14 // encoding: [0xd7,0xd9,0x79,0x5e] 14 // CHECK: scvtf s22, s13 // encoding: [0xb6,0xd9,0x21,0x5e] 15 // CHECK: scvtf d21, d12 // encoding: [0x95,0xd9,0x61,0x5e] 16 17 //---------------------------------------------------------------------- 18 // Scalar Unsigned Integer Convert To Floating-point 19 //---------------------------------------------------------------------- 20 21 ucvtf h20, h12 22 ucvtf s22, s13 23 ucvtf d21, d14 24 25 // CHECK: ucvtf h20, h12 // encoding: [0x94,0xd9,0x79,0x7e] 26 // CHECK: ucvtf s22, s13 // encoding: [0xb6,0xd9,0x21,0x7e] 27 // CHECK: ucvtf d21, d14 // encoding: [0xd5,0xd9,0x61,0x7e] 28 29 //---------------------------------------------------------------------- 30 // Scalar Signed Fixed-point Convert To Floating-Point (Immediate) 31 //---------------------------------------------------------------------- 32 33 scvtf h22, h13, #16 34 scvtf s22, s13, #32 35 scvtf d21, d12, #64 36 37 // CHECK: scvtf h22, h13, #16 // encoding: [0xb6,0xe5,0x10,0x5f] 38 // CHECK: scvtf s22, s13, #32 // encoding: [0xb6,0xe5,0x20,0x5f] 39 // CHECK: scvtf d21, d12, #64 // encoding: [0x95,0xe5,0x40,0x5f] 40 41 //---------------------------------------------------------------------- 42 // Scalar Unsigned Fixed-point Convert To Floating-Point (Immediate) 43 //---------------------------------------------------------------------- 44 45 ucvtf h22, h13, #16 46 ucvtf s22, s13, #32 47 ucvtf d21, d14, #64 48 49 // CHECK: ucvtf h22, h13, #16 // encoding: [0xb6,0xe5,0x10,0x7f] 50 // CHECK: ucvtf s22, s13, #32 // encoding: [0xb6,0xe5,0x20,0x7f] 51 // CHECK: ucvtf d21, d14, #64 // encoding: [0xd5,0xe5,0x40,0x7f] 52 53 //---------------------------------------------------------------------- 54 // Scalar Floating-point Convert To Signed Fixed-point (Immediate) 55 //---------------------------------------------------------------------- 56 57 fcvtzs h21, h12, #1 58 fcvtzs s21, s12, #1 59 fcvtzs d21, d12, #1 60 61 // CHECK: fcvtzs h21, h12, #1 // encoding: [0x95,0xfd,0x1f,0x5f] 62 // CHECK: fcvtzs s21, s12, #1 // encoding: [0x95,0xfd,0x3f,0x5f] 63 // CHECK: fcvtzs d21, d12, #1 // encoding: [0x95,0xfd,0x7f,0x5f] 64 65 //---------------------------------------------------------------------- 66 // Scalar Floating-point Convert To Unsigned Fixed-point (Immediate) 67 //---------------------------------------------------------------------- 68 69 fcvtzu h21, h12, #1 70 fcvtzu s21, s12, #1 71 fcvtzu d21, d12, #1 72 73 // CHECK: fcvtzu h21, h12, #1 // encoding: [0x95,0xfd,0x1f,0x7f] 74 // CHECK: fcvtzu s21, s12, #1 // encoding: [0x95,0xfd,0x3f,0x7f] 75 // CHECK: fcvtzu d21, d12, #1 // encoding: [0x95,0xfd,0x7f,0x7f] 76 77 //---------------------------------------------------------------------- 78 // Scalar Floating-point Convert To Lower Precision Narrow, Rounding To 79 // Odd 80 //---------------------------------------------------------------------- 81 82 fcvtxn s22, d13 83 84 // CHECK: fcvtxn s22, d13 // encoding: [0xb6,0x69,0x61,0x7e] 85 86 //---------------------------------------------------------------------- 87 // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest 88 // With Ties To Away 89 //---------------------------------------------------------------------- 90 91 fcvtas h12, h13 92 fcvtas s12, s13 93 fcvtas d21, d14 94 95 // CHECK: fcvtas h12, h13 // encoding: [0xac,0xc9,0x79,0x5e] 96 // CHECK: fcvtas s12, s13 // encoding: [0xac,0xc9,0x21,0x5e] 97 // CHECK: fcvtas d21, d14 // encoding: [0xd5,0xc9,0x61,0x5e] 98 99 //---------------------------------------------------------------------- 100 // Scalar Floating-point Convert To Unsigned Integer, Rounding To 101 // Nearest With Ties To Away 102 //---------------------------------------------------------------------- 103 104 fcvtau h12, h13 105 fcvtau s12, s13 106 fcvtau d21, d14 107 108 // CHECK: fcvtau h12, h13 // encoding: [0xac,0xc9,0x79,0x7e] 109 // CHECK: fcvtau s12, s13 // encoding: [0xac,0xc9,0x21,0x7e] 110 // CHECK: fcvtau d21, d14 // encoding: [0xd5,0xc9,0x61,0x7e] 111 112 //---------------------------------------------------------------------- 113 // Scalar Floating-point Convert To Signed Integer, Rounding Toward 114 // Minus Infinity 115 //---------------------------------------------------------------------- 116 117 fcvtms h22, h13 118 fcvtms s22, s13 119 fcvtms d21, d14 120 121 // CHECK: fcvtms h22, h13 // encoding: [0xb6,0xb9,0x79,0x5e] 122 // CHECK: fcvtms s22, s13 // encoding: [0xb6,0xb9,0x21,0x5e] 123 // CHECK: fcvtms d21, d14 // encoding: [0xd5,0xb9,0x61,0x5e] 124 125 //---------------------------------------------------------------------- 126 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward 127 // Minus Infinity 128 //---------------------------------------------------------------------- 129 130 fcvtmu h12, h13 131 fcvtmu s12, s13 132 fcvtmu d21, d14 133 134 // CHECK: fcvtmu h12, h13 // encoding: [0xac,0xb9,0x79,0x7e] 135 // CHECK: fcvtmu s12, s13 // encoding: [0xac,0xb9,0x21,0x7e] 136 // CHECK: fcvtmu d21, d14 // encoding: [0xd5,0xb9,0x61,0x7e] 137 138 //---------------------------------------------------------------------- 139 // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest 140 // With Ties To Even 141 //---------------------------------------------------------------------- 142 143 fcvtns h22, h13 144 fcvtns s22, s13 145 fcvtns d21, d14 146 147 // CHECK: fcvtns h22, h13 // encoding: [0xb6,0xa9,0x79,0x5e] 148 // CHECK: fcvtns s22, s13 // encoding: [0xb6,0xa9,0x21,0x5e] 149 // CHECK: fcvtns d21, d14 // encoding: [0xd5,0xa9,0x61,0x5e] 150 151 //---------------------------------------------------------------------- 152 // Scalar Floating-point Convert To Unsigned Integer, Rounding To 153 // Nearest With Ties To Even 154 //---------------------------------------------------------------------- 155 156 fcvtnu h12, h13 157 fcvtnu s12, s13 158 fcvtnu d21, d14 159 160 // CHECK: fcvtnu h12, h13 // encoding: [0xac,0xa9,0x79,0x7e] 161 // CHECK: fcvtnu s12, s13 // encoding: [0xac,0xa9,0x21,0x7e] 162 // CHECK: fcvtnu d21, d14 // encoding: [0xd5,0xa9,0x61,0x7e] 163 164 //---------------------------------------------------------------------- 165 // Scalar Floating-point Convert To Signed Integer, Rounding Toward 166 // Positive Infinity 167 //---------------------------------------------------------------------- 168 169 fcvtps h22, h13 170 fcvtps s22, s13 171 fcvtps d21, d14 172 173 // CHECK: fcvtps h22, h13 // encoding: [0xb6,0xa9,0xf9,0x5e] 174 // CHECK: fcvtps s22, s13 // encoding: [0xb6,0xa9,0xa1,0x5e] 175 // CHECK: fcvtps d21, d14 // encoding: [0xd5,0xa9,0xe1,0x5e] 176 177 //---------------------------------------------------------------------- 178 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward 179 // Positive Infinity 180 //---------------------------------------------------------------------- 181 182 fcvtpu h12, h13 183 fcvtpu s12, s13 184 fcvtpu d21, d14 185 186 // CHECK: fcvtpu h12, h13 // encoding: [0xac,0xa9,0xf9,0x7e] 187 // CHECK: fcvtpu s12, s13 // encoding: [0xac,0xa9,0xa1,0x7e] 188 // CHECK: fcvtpu d21, d14 // encoding: [0xd5,0xa9,0xe1,0x7e] 189 190 //---------------------------------------------------------------------- 191 // Scalar Floating-point Convert To Signed Integer, Rounding Toward Zero 192 //---------------------------------------------------------------------- 193 194 fcvtzs h12, h13 195 fcvtzs s12, s13 196 fcvtzs d21, d14 197 198 // CHECK: fcvtzs h12, h13 // encoding: [0xac,0xb9,0xf9,0x5e] 199 // CHECK: fcvtzs s12, s13 // encoding: [0xac,0xb9,0xa1,0x5e] 200 // CHECK: fcvtzs d21, d14 // encoding: [0xd5,0xb9,0xe1,0x5e] 201 202 //---------------------------------------------------------------------- 203 // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward 204 // Zero 205 //---------------------------------------------------------------------- 206 207 fcvtzu h12, h13 208 fcvtzu s12, s13 209 fcvtzu d21, d14 210 211 // CHECK: fcvtzu h12, h13 // encoding: [0xac,0xb9,0xf9,0x7e] 212 // CHECK: fcvtzu s12, s13 // encoding: [0xac,0xb9,0xa1,0x7e] 213 // CHECK: fcvtzu d21, d14 // encoding: [0xd5,0xb9,0xe1,0x7e] 214