214 lines · plain
1// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s2 3// Check that the assembler can handle the documented syntax for AArch644 5//----------------------------------------------------------------------6// Scalar Signed Integer Convert To Floating-point7//----------------------------------------------------------------------8 9 scvtf h23, h1410 scvtf s22, s1311 scvtf d21, d1212 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-point19//----------------------------------------------------------------------20 21 ucvtf h20, h1222 ucvtf s22, s1323 ucvtf d21, d1424 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, #1634 scvtf s22, s13, #3235 scvtf d21, d12, #6436 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, #1646 ucvtf s22, s13, #3247 ucvtf d21, d14, #6448 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, #158 fcvtzs s21, s12, #159 fcvtzs d21, d12, #160 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, #170 fcvtzu s21, s12, #171 fcvtzu d21, d12, #172 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 To79// Odd80//----------------------------------------------------------------------81 82 fcvtxn s22, d1383 84// CHECK: fcvtxn s22, d13 // encoding: [0xb6,0x69,0x61,0x7e]85 86//----------------------------------------------------------------------87// Scalar Floating-point Convert To Signed Integer, Rounding To Nearest88// With Ties To Away89//----------------------------------------------------------------------90 91 fcvtas h12, h1392 fcvtas s12, s1393 fcvtas d21, d1494 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 To101// Nearest With Ties To Away102//----------------------------------------------------------------------103 104 fcvtau h12, h13105 fcvtau s12, s13106 fcvtau d21, d14107 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 Toward114// Minus Infinity115//----------------------------------------------------------------------116 117 fcvtms h22, h13118 fcvtms s22, s13119 fcvtms d21, d14120 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 Toward127// Minus Infinity128//----------------------------------------------------------------------129 130 fcvtmu h12, h13131 fcvtmu s12, s13132 fcvtmu d21, d14133 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 Nearest140// With Ties To Even141//----------------------------------------------------------------------142 143 fcvtns h22, h13144 fcvtns s22, s13145 fcvtns d21, d14146 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 To153// Nearest With Ties To Even154//----------------------------------------------------------------------155 156 fcvtnu h12, h13157 fcvtnu s12, s13158 fcvtnu d21, d14159 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 Toward166// Positive Infinity167//----------------------------------------------------------------------168 169 fcvtps h22, h13170 fcvtps s22, s13171 fcvtps d21, d14172 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 Toward179// Positive Infinity180//----------------------------------------------------------------------181 182 fcvtpu h12, h13183 fcvtpu s12, s13184 fcvtpu d21, d14185 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 Zero192//----------------------------------------------------------------------193 194 fcvtzs h12, h13195 fcvtzs s12, s13196 fcvtzs d21, d14197 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// Zero205//----------------------------------------------------------------------206 207 fcvtzu h12, h13208 fcvtzu s12, s13209 fcvtzu d21, d14210 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