forked from OSchip/llvm-project
[AArch64] Add the constraint to NEON scalar mla/mls instructions.
llvm-svn: 193118
This commit is contained in:
parent
e012cb3783
commit
c2a0b13c25
|
@ -882,11 +882,11 @@ def SCALAR_USQADD : SInst<"vsqadd", "sss", "SUcSUsSUiSUl">;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Signed Saturating Doubling Multiply-Add Long
|
// Signed Saturating Doubling Multiply-Add Long
|
||||||
def SCALAR_SQDMLAL : SInst<"vqdmlal", "rss", "SsSi">;
|
def SCALAR_SQDMLAL : SInst<"vqdmlal", "rrss", "SsSi">;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Signed Saturating Doubling Multiply-Subtract Long
|
// Signed Saturating Doubling Multiply-Subtract Long
|
||||||
def SCALAR_SQDMLSL : SInst<"vqdmlsl", "rss", "SsSi">;
|
def SCALAR_SQDMLSL : SInst<"vqdmlsl", "rrss", "SsSi">;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Signed Saturating Doubling Multiply Long
|
// Signed Saturating Doubling Multiply Long
|
||||||
|
|
|
@ -7226,28 +7226,28 @@ uint64_t test_vsqaddd_u64(uint64_t a, uint64_t b) {
|
||||||
return (uint64_t)vsqaddd_u64(a, b);
|
return (uint64_t)vsqaddd_u64(a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t test_vqdmlalh_s16(int16_t a, int16_t b) {
|
int32_t test_vqdmlalh_s16(int32_t a, int16_t b, int16_t c) {
|
||||||
// CHECK: test_vqdmlalh_s16
|
// CHECK: test_vqdmlalh_s16
|
||||||
// CHECK: sqdmlal {{s[0-9]+}}, {{h[0-9]+}}, {{h[0-9]+}}
|
// CHECK: sqdmlal {{s[0-9]+}}, {{h[0-9]+}}, {{h[0-9]+}}
|
||||||
return (int32_t)vqdmlalh_s16(a, b);
|
return (int32_t)vqdmlalh_s16(a, b, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t test_vqdmlals_s32(int32_t a, int32_t b) {
|
int64_t test_vqdmlals_s32(int64_t a, int32_t b, int32_t c) {
|
||||||
// CHECK: test_vqdmlals_s32
|
// CHECK: test_vqdmlals_s32
|
||||||
// CHECK: sqdmlal {{d[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}}
|
// CHECK: sqdmlal {{d[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}}
|
||||||
return (int64_t)vqdmlals_s32(a, b);
|
return (int64_t)vqdmlals_s32(a, b, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t test_vqdmlslh_s16(int16_t a, int16_t b) {
|
int32_t test_vqdmlslh_s16(int32_t a, int16_t b, int16_t c) {
|
||||||
// CHECK: test_vqdmlslh_s16
|
// CHECK: test_vqdmlslh_s16
|
||||||
// CHECK: sqdmlsl {{s[0-9]+}}, {{h[0-9]+}}, {{h[0-9]+}}
|
// CHECK: sqdmlsl {{s[0-9]+}}, {{h[0-9]+}}, {{h[0-9]+}}
|
||||||
return (int32_t)vqdmlslh_s16(a, b);
|
return (int32_t)vqdmlslh_s16(a, b, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t test_vqdmlsls_s32(int32_t a, int32_t b) {
|
int64_t test_vqdmlsls_s32(int64_t a, int32_t b, int32_t c) {
|
||||||
// CHECK: test_vqdmlsls_s32
|
// CHECK: test_vqdmlsls_s32
|
||||||
// CHECK: sqdmlsl {{d[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}}
|
// CHECK: sqdmlsl {{d[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}}
|
||||||
return (int64_t)vqdmlsls_s32(a, b);
|
return (int64_t)vqdmlsls_s32(a, b, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t test_vqdmullh_s16(int16_t a, int16_t b) {
|
int32_t test_vqdmullh_s16(int16_t a, int16_t b) {
|
||||||
|
|
Loading…
Reference in New Issue