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