| // RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s |
| |
| // Check that the assembler can handle the documented syntax for AArch64 |
| |
| //---------------------------------------------------------------------- |
| // Scalar Signed Integer Convert To Floating-point |
| //---------------------------------------------------------------------- |
| |
| scvtf h23, h14 |
| scvtf s22, s13 |
| scvtf d21, d12 |
| |
| // CHECK: scvtf h23, h14 // encoding: [0xd7,0xd9,0x79,0x5e] |
| // CHECK: scvtf s22, s13 // encoding: [0xb6,0xd9,0x21,0x5e] |
| // CHECK: scvtf d21, d12 // encoding: [0x95,0xd9,0x61,0x5e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Unsigned Integer Convert To Floating-point |
| //---------------------------------------------------------------------- |
| |
| ucvtf h20, h12 |
| ucvtf s22, s13 |
| ucvtf d21, d14 |
| |
| // CHECK: ucvtf h20, h12 // encoding: [0x94,0xd9,0x79,0x7e] |
| // CHECK: ucvtf s22, s13 // encoding: [0xb6,0xd9,0x21,0x7e] |
| // CHECK: ucvtf d21, d14 // encoding: [0xd5,0xd9,0x61,0x7e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Signed Fixed-point Convert To Floating-Point (Immediate) |
| //---------------------------------------------------------------------- |
| |
| scvtf h22, h13, #16 |
| scvtf s22, s13, #32 |
| scvtf d21, d12, #64 |
| |
| // CHECK: scvtf h22, h13, #16 // encoding: [0xb6,0xe5,0x10,0x5f] |
| // CHECK: scvtf s22, s13, #32 // encoding: [0xb6,0xe5,0x20,0x5f] |
| // CHECK: scvtf d21, d12, #64 // encoding: [0x95,0xe5,0x40,0x5f] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Unsigned Fixed-point Convert To Floating-Point (Immediate) |
| //---------------------------------------------------------------------- |
| |
| ucvtf h22, h13, #16 |
| ucvtf s22, s13, #32 |
| ucvtf d21, d14, #64 |
| |
| // CHECK: ucvtf h22, h13, #16 // encoding: [0xb6,0xe5,0x10,0x7f] |
| // CHECK: ucvtf s22, s13, #32 // encoding: [0xb6,0xe5,0x20,0x7f] |
| // CHECK: ucvtf d21, d14, #64 // encoding: [0xd5,0xe5,0x40,0x7f] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Signed Fixed-point (Immediate) |
| //---------------------------------------------------------------------- |
| |
| fcvtzs h21, h12, #1 |
| fcvtzs s21, s12, #1 |
| fcvtzs d21, d12, #1 |
| |
| // CHECK: fcvtzs h21, h12, #1 // encoding: [0x95,0xfd,0x1f,0x5f] |
| // CHECK: fcvtzs s21, s12, #1 // encoding: [0x95,0xfd,0x3f,0x5f] |
| // CHECK: fcvtzs d21, d12, #1 // encoding: [0x95,0xfd,0x7f,0x5f] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Unsigned Fixed-point (Immediate) |
| //---------------------------------------------------------------------- |
| |
| fcvtzu h21, h12, #1 |
| fcvtzu s21, s12, #1 |
| fcvtzu d21, d12, #1 |
| |
| // CHECK: fcvtzu h21, h12, #1 // encoding: [0x95,0xfd,0x1f,0x7f] |
| // CHECK: fcvtzu s21, s12, #1 // encoding: [0x95,0xfd,0x3f,0x7f] |
| // CHECK: fcvtzu d21, d12, #1 // encoding: [0x95,0xfd,0x7f,0x7f] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Lower Precision Narrow, Rounding To |
| // Odd |
| //---------------------------------------------------------------------- |
| |
| fcvtxn s22, d13 |
| |
| // CHECK: fcvtxn s22, d13 // encoding: [0xb6,0x69,0x61,0x7e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest |
| // With Ties To Away |
| //---------------------------------------------------------------------- |
| |
| fcvtas h12, h13 |
| fcvtas s12, s13 |
| fcvtas d21, d14 |
| |
| // CHECK: fcvtas h12, h13 // encoding: [0xac,0xc9,0x79,0x5e] |
| // CHECK: fcvtas s12, s13 // encoding: [0xac,0xc9,0x21,0x5e] |
| // CHECK: fcvtas d21, d14 // encoding: [0xd5,0xc9,0x61,0x5e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Unsigned Integer, Rounding To |
| // Nearest With Ties To Away |
| //---------------------------------------------------------------------- |
| |
| fcvtau h12, h13 |
| fcvtau s12, s13 |
| fcvtau d21, d14 |
| |
| // CHECK: fcvtau h12, h13 // encoding: [0xac,0xc9,0x79,0x7e] |
| // CHECK: fcvtau s12, s13 // encoding: [0xac,0xc9,0x21,0x7e] |
| // CHECK: fcvtau d21, d14 // encoding: [0xd5,0xc9,0x61,0x7e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Signed Integer, Rounding Toward |
| // Minus Infinity |
| //---------------------------------------------------------------------- |
| |
| fcvtms h22, h13 |
| fcvtms s22, s13 |
| fcvtms d21, d14 |
| |
| // CHECK: fcvtms h22, h13 // encoding: [0xb6,0xb9,0x79,0x5e] |
| // CHECK: fcvtms s22, s13 // encoding: [0xb6,0xb9,0x21,0x5e] |
| // CHECK: fcvtms d21, d14 // encoding: [0xd5,0xb9,0x61,0x5e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward |
| // Minus Infinity |
| //---------------------------------------------------------------------- |
| |
| fcvtmu h12, h13 |
| fcvtmu s12, s13 |
| fcvtmu d21, d14 |
| |
| // CHECK: fcvtmu h12, h13 // encoding: [0xac,0xb9,0x79,0x7e] |
| // CHECK: fcvtmu s12, s13 // encoding: [0xac,0xb9,0x21,0x7e] |
| // CHECK: fcvtmu d21, d14 // encoding: [0xd5,0xb9,0x61,0x7e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Signed Integer, Rounding To Nearest |
| // With Ties To Even |
| //---------------------------------------------------------------------- |
| |
| fcvtns h22, h13 |
| fcvtns s22, s13 |
| fcvtns d21, d14 |
| |
| // CHECK: fcvtns h22, h13 // encoding: [0xb6,0xa9,0x79,0x5e] |
| // CHECK: fcvtns s22, s13 // encoding: [0xb6,0xa9,0x21,0x5e] |
| // CHECK: fcvtns d21, d14 // encoding: [0xd5,0xa9,0x61,0x5e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Unsigned Integer, Rounding To |
| // Nearest With Ties To Even |
| //---------------------------------------------------------------------- |
| |
| fcvtnu h12, h13 |
| fcvtnu s12, s13 |
| fcvtnu d21, d14 |
| |
| // CHECK: fcvtnu h12, h13 // encoding: [0xac,0xa9,0x79,0x7e] |
| // CHECK: fcvtnu s12, s13 // encoding: [0xac,0xa9,0x21,0x7e] |
| // CHECK: fcvtnu d21, d14 // encoding: [0xd5,0xa9,0x61,0x7e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Signed Integer, Rounding Toward |
| // Positive Infinity |
| //---------------------------------------------------------------------- |
| |
| fcvtps h22, h13 |
| fcvtps s22, s13 |
| fcvtps d21, d14 |
| |
| // CHECK: fcvtps h22, h13 // encoding: [0xb6,0xa9,0xf9,0x5e] |
| // CHECK: fcvtps s22, s13 // encoding: [0xb6,0xa9,0xa1,0x5e] |
| // CHECK: fcvtps d21, d14 // encoding: [0xd5,0xa9,0xe1,0x5e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward |
| // Positive Infinity |
| //---------------------------------------------------------------------- |
| |
| fcvtpu h12, h13 |
| fcvtpu s12, s13 |
| fcvtpu d21, d14 |
| |
| // CHECK: fcvtpu h12, h13 // encoding: [0xac,0xa9,0xf9,0x7e] |
| // CHECK: fcvtpu s12, s13 // encoding: [0xac,0xa9,0xa1,0x7e] |
| // CHECK: fcvtpu d21, d14 // encoding: [0xd5,0xa9,0xe1,0x7e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Signed Integer, Rounding Toward Zero |
| //---------------------------------------------------------------------- |
| |
| fcvtzs h12, h13 |
| fcvtzs s12, s13 |
| fcvtzs d21, d14 |
| |
| // CHECK: fcvtzs h12, h13 // encoding: [0xac,0xb9,0xf9,0x5e] |
| // CHECK: fcvtzs s12, s13 // encoding: [0xac,0xb9,0xa1,0x5e] |
| // CHECK: fcvtzs d21, d14 // encoding: [0xd5,0xb9,0xe1,0x5e] |
| |
| //---------------------------------------------------------------------- |
| // Scalar Floating-point Convert To Unsigned Integer, Rounding Toward |
| // Zero |
| //---------------------------------------------------------------------- |
| |
| fcvtzu h12, h13 |
| fcvtzu s12, s13 |
| fcvtzu d21, d14 |
| |
| // CHECK: fcvtzu h12, h13 // encoding: [0xac,0xb9,0xf9,0x7e] |
| // CHECK: fcvtzu s12, s13 // encoding: [0xac,0xb9,0xa1,0x7e] |
| // CHECK: fcvtzu d21, d14 // encoding: [0xd5,0xb9,0xe1,0x7e] |