// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
// Check that the assembler can handle the documented syntax for AArch64
//----------------------------------------------------------------------
// Scalar Signed Shift Right (Immediate)
//----------------------------------------------------------------------
sshr d15, d16,
// CHECK: sshr d15, d16,
//----------------------------------------------------------------------
// Scalar Unsigned Shift Right (Immediate)
//----------------------------------------------------------------------
ushr d10, d17,
// CHECK: ushr d10, d17,
//----------------------------------------------------------------------
// Scalar Signed Rounding Shift Right (Immediate)
//----------------------------------------------------------------------
srshr d19, d18,
// CHECK: srshr d19, d18,
//----------------------------------------------------------------------
// Scalar Unigned Rounding Shift Right (Immediate)
//----------------------------------------------------------------------
urshr d20, d23,
// CHECK: urshr d20, d23,
//----------------------------------------------------------------------
// Scalar Signed Shift Right and Accumulate (Immediate)
//----------------------------------------------------------------------
ssra d18, d12,
// CHECK: ssra d18, d12,
//----------------------------------------------------------------------
// Scalar Unsigned Shift Right and Accumulate (Immediate)
//----------------------------------------------------------------------
usra d20, d13,
// CHECK: usra d20, d13,
//----------------------------------------------------------------------
// Scalar Signed Rounding Shift Right and Accumulate (Immediate)
//----------------------------------------------------------------------
srsra d15, d11,
// CHECK: srsra d15, d11,
//----------------------------------------------------------------------
// Scalar Unsigned Rounding Shift Right and Accumulate (Immediate)
//----------------------------------------------------------------------
ursra d18, d10,
// CHECK: ursra d18, d10,
//----------------------------------------------------------------------
// Scalar Shift Left (Immediate)
//----------------------------------------------------------------------
shl d7, d10,
// CHECK: shl d7, d10,
//----------------------------------------------------------------------
// Signed Saturating Shift Left (Immediate)
//----------------------------------------------------------------------
sqshl b11, b19, sqshl h13, h18, sqshl s14, s17, sqshl d15, d16,
// CHECK: sqshl b11, b19, // CHECK: sqshl h13, h18, // CHECK: sqshl s14, s17, // CHECK: sqshl d15, d16,
//----------------------------------------------------------------------
// Unsigned Saturating Shift Left (Immediate)
//----------------------------------------------------------------------
uqshl b18, b15, uqshl h11, h18, uqshl s14, s19, uqshl d15, d12,
// CHECK: uqshl b18, b15, // CHECK: uqshl h11, h18, // CHECK: uqshl s14, s19, // CHECK: uqshl d15, d12,
//----------------------------------------------------------------------
// Signed Saturating Shift Left Unsigned (Immediate)
//----------------------------------------------------------------------
sqshlu b15, b18, sqshlu h19, h17, sqshlu s16, s14, sqshlu d11, d13,
// CHECK: sqshlu b15, b18, // CHECK: sqshlu h19, h17, // CHECK: sqshlu s16, s14, // CHECK: sqshlu d11, d13,
//----------------------------------------------------------------------
// Shift Right And Insert (Immediate)
//----------------------------------------------------------------------
sri d10, d12,
// CHECK: sri d10, d12,
//----------------------------------------------------------------------
// Shift Left And Insert (Immediate)
//----------------------------------------------------------------------
sli d10, d14,
// CHECK: sli d10, d14,
//----------------------------------------------------------------------
// Signed Saturating Shift Right Narrow (Immediate)
//----------------------------------------------------------------------
sqshrn b10, h15, sqshrn h17, s10, sqshrn s18, d10,
// CHECK: sqshrn b10, h15, // CHECK: sqshrn h17, s10, // CHECK: sqshrn s18, d10,
//----------------------------------------------------------------------
// Unsigned Saturating Shift Right Narrow (Immediate)
//----------------------------------------------------------------------
uqshrn b12, h10, uqshrn h10, s14, uqshrn s10, d12,
// CHECK: uqshrn b12, h10, // CHECK: uqshrn h10, s14, // CHECK: uqshrn s10, d12,
//----------------------------------------------------------------------
// Signed Saturating Rounded Shift Right Narrow (Immediate)
//----------------------------------------------------------------------
sqrshrn b10, h13, sqrshrn h15, s10, sqrshrn s15, d12,
// CHECK: sqrshrn b10, h13, // CHECK: sqrshrn h15, s10, // CHECK: sqrshrn s15, d12,
//----------------------------------------------------------------------
// Unsigned Saturating Rounded Shift Right Narrow (Immediate)
//----------------------------------------------------------------------
uqrshrn b10, h12, uqrshrn h12, s10, uqrshrn s10, d10,
// CHECK: uqrshrn b10, h12, // CHECK: uqrshrn h12, s10, // CHECK: uqrshrn s10, d10,
//----------------------------------------------------------------------
// Signed Saturating Shift Right Unsigned Narrow (Immediate)
//----------------------------------------------------------------------
sqshrun b15, h10, sqshrun h20, s14, sqshrun s10, d15,
// CHECK: sqshrun b15, h10, // CHECK: sqshrun h20, s14, // CHECK: sqshrun s10, d15,
//----------------------------------------------------------------------
// Signed Saturating Rounded Shift Right Unsigned Narrow (Immediate)
//----------------------------------------------------------------------
sqrshrun b17, h10, sqrshrun h10, s13, sqrshrun s22, d16,
// CHECK: sqrshrun b17, h10, // CHECK: sqrshrun h10, s13, // CHECK: sqrshrun s22, d16,