forked from llvm-mirror/llvm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[AArch64] Add ARMv8.2-A FP16 vector instructions
ARMv8.2-A adds 16-bit floating point versions of all existing SIMD floating-point instructions. This is an optional extension, so all of these instructions require the FeatureFullFP16 subtarget feature. Note that VFP without SIMD is not a valid combination for any version of ARMv8-A, but I have ensured that these instructions all depend on both FeatureNEON and FeatureFullFP16 for consistency. The ".2h" vector type specifier is now legal (for the scalar pairwise reduction instructions), so some unrelated tests have been modified as different error messages are emitted. This is not a problem as the invalid operands are still caught. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255010 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
Showing
31 changed files
with
1,917 additions
and
337 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
// RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon < %s 2> %t | ||
// RUN: FileCheck < %t %s | ||
|
||
fmla v0.4h, v1.4h, v16.h[3] | ||
fmla v2.8h, v3.8h, v17.h[6] | ||
|
||
// CHECK: error: invalid operand for instruction | ||
// CHECK-NEXT: fmla v0.4h, v1.4h, v16.h[3] | ||
// CHECK-NEXT: ^ | ||
// CHECK: error: invalid operand for instruction | ||
// CHECK-NEXT: fmla v2.8h, v3.8h, v17.h[6] | ||
// CHECK-NEXT: ^ | ||
|
||
fmls v0.4h, v1.4h, v16.h[3] | ||
fmls v2.8h, v3.8h, v17.h[6] | ||
|
||
// CHECK: error: invalid operand for instruction | ||
// CHECK-NEXT: fmls v0.4h, v1.4h, v16.h[3] | ||
// CHECK-NEXT: ^ | ||
// CHECK: error: invalid operand for instruction | ||
// CHECK-NEXT: fmls v2.8h, v3.8h, v17.h[6] | ||
// CHECK-NEXT: ^ | ||
|
||
fmul v0.4h, v1.4h, v16.h[3] | ||
fmul v2.8h, v3.8h, v17.h[6] | ||
|
||
// CHECK: error: invalid operand for instruction | ||
// CHECK-NEXT: fmul v0.4h, v1.4h, v16.h[3] | ||
// CHECK-NEXT: ^ | ||
// CHECK: error: invalid operand for instruction | ||
// CHECK-NEXT: fmul v2.8h, v3.8h, v17.h[6] | ||
// CHECK-NEXT: ^ | ||
|
||
fmulx v0.4h, v1.4h, v16.h[3] | ||
fmulx v2.8h, v3.8h, v17.h[6] | ||
|
||
// CHECK: error: invalid operand for instruction | ||
// CHECK-NEXT: fmulx v0.4h, v1.4h, v16.h[3] | ||
// CHECK-NEXT: ^ | ||
// CHECK: error: invalid operand for instruction | ||
// CHECK-NEXT: fmulx v2.8h, v3.8h, v17.h[6] | ||
// CHECK-NEXT: ^ |
Oops, something went wrong.