Kevin Qin
ef66ff78ca
[AArch64 NEON] Accept both #0.0 and #0 for comparing with floating point zero in asm parser.
...
For FCMEQ, FCMGE, FCMGT, FCMLE and FCMLT, floating point zero will be
printed as #0.0 instead of #0 . To support the history codes using #0 ,
we consider to let asm parser accept both #0.0 and #0 .
llvm-svn: 199621
2014-01-20 02:14:05 +00:00
Ana Pazos
cfd2ca5826
[AArch64][NEON] Added UXTL and UXTL2 instruction aliases
...
llvm-svn: 198791
2014-01-08 21:02:13 +00:00
Ana Pazos
e891c5f264
[AArch64][NEON] Added SXTL and SXTL2 instruction aliases
...
llvm-svn: 198437
2014-01-03 19:20:31 +00:00
Chad Rosier
75290c6307
[AArch64] Add support for NEON scalar floating-point absolute difference.
...
llvm-svn: 195803
2013-11-27 01:45:58 +00:00
Chad Rosier
9653d5c989
[AArch64] Add support for NEON scalar floating-point to integer convert
...
instructions.
llvm-svn: 195788
2013-11-26 22:17:37 +00:00
Ana Pazos
9ac2fc85d2
Implemented Neon scalar vdup_lane intrinsics.
...
Fixed scalar dup alias and added test case.
llvm-svn: 195330
2013-11-21 08:16:15 +00:00
Hao Liu
16edc4675c
Implement AArch64 neon instructions class SIMD lsone and SIMD lone-post.
...
llvm-svn: 195078
2013-11-19 02:17:05 +00:00
Kevin Qin
7f8073edc2
implement MC layer of AArch64 neon instruction PMULL and PMULL2 with 128 bit integer.
...
llvm-svn: 195072
2013-11-19 01:40:25 +00:00
Jiangning Liu
e329114ae5
Add predicate for AArch64 crypto instructions.
...
llvm-svn: 195071
2013-11-19 01:38:31 +00:00
Kevin Qin
6588c1a638
[AArch64 NEON]Add mov alias for simd copy instructions.
...
Set some unspecified bits of INS/DUP to zero as ARMARM requested.
llvm-svn: 194996
2013-11-18 09:20:32 +00:00
Kevin Qin
6e0547dfc9
Add test case for AArch64 NEON instruction set misc.
...
llvm-svn: 194673
2013-11-14 06:45:17 +00:00
Kevin Qin
aec95baf1a
Implement aarch64 neon instruction class SIMD misc.
...
llvm-svn: 194656
2013-11-14 02:44:13 +00:00
Jiangning Liu
bb60ccf355
Implement AArch64 NEON instruction set AdvSIMD (table).
...
llvm-svn: 194648
2013-11-14 01:57:32 +00:00
Chad Rosier
1eb0ecf8ce
[AArch64] Implemented AdvSIMD scalar x indexed element format and AdvSIMD scalar
...
copy in MC layer. Added the MC layer tests. Fixed triple setting in test cases.
Patch by Ana Pazos <apazos@codeaurora.org>.
llvm-svn: 194501
2013-11-12 19:13:08 +00:00
Chad Rosier
35575e737c
[AArch64] Add support for NEON scalar floating-point convert to fixed-point instructions.
...
llvm-svn: 194394
2013-11-11 18:04:07 +00:00
Jiangning Liu
f4226f1d7b
Implement AArch64 Neon instruction set Perm.
...
llvm-svn: 194123
2013-11-06 03:35:27 +00:00
Jiangning Liu
a50e22ca4f
Implement AArch64 Neon instruction set Bitwise Extract.
...
llvm-svn: 194118
2013-11-06 02:25:49 +00:00
Jiangning Liu
d7c52676f6
Implement AArch64 Neon Crypto instruction classes AES, SHA, and 3 SHA.
...
llvm-svn: 194085
2013-11-05 17:42:05 +00:00
Hao Liu
d6b40b51c7
Implement AArch64 post-index vector load/store multiple N-element structure class SIMD(lselem-post).
...
Including following 14 instructions:
4 ld1 insts: post-index load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: post-index load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: post-index store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: post-index store multiple N-element structure from sequential N registers (N = 2,3,4).
llvm-svn: 194043
2013-11-05 03:39:32 +00:00
Chad Rosier
74b65cd811
[AArch64] Add support for NEON scalar fixed-point convert to floating-point instructions.
...
llvm-svn: 193816
2013-10-31 22:36:59 +00:00
Chad Rosier
77ada678ed
[AArch64] Add diagnostic tests for NEON scalar shift immediate instructions (see: r193790).
...
llvm-svn: 193798
2013-10-31 20:11:32 +00:00
Chad Rosier
20e1f20d69
[AArch64] Add support for NEON scalar shift immediate instructions.
...
llvm-svn: 193790
2013-10-31 19:28:44 +00:00
Amara Emerson
f80f95fcc7
[AArch64] Make the use of FP instructions optional, but enabled by default.
...
This adds a new subtarget feature called FPARMv8 (implied by NEON), and
predicates the support of the FP instructions and registers on this feature.
llvm-svn: 193739
2013-10-31 09:32:11 +00:00
Chad Rosier
be020d0309
[AArch64] Add support for NEON scalar floating-point compare instructions.
...
llvm-svn: 193691
2013-10-30 15:19:37 +00:00
Rafael Espindola
57ec995c37
Convert another llc -filetype=obj test.
...
llvm-svn: 193538
2013-10-28 21:06:12 +00:00
Rafael Espindola
3a5eecb57c
Convert another llc -filetype=obj test.
...
llvm-svn: 193537
2013-10-28 20:59:41 +00:00
Rafael Espindola
3f018baac0
Convert another llc -filetype=obj test.
...
llvm-svn: 193536
2013-10-28 20:54:33 +00:00
Rafael Espindola
889a180e5a
Convert a llc -filetype=obj test into a llvm-mc test.
...
llvm-svn: 193534
2013-10-28 20:40:20 +00:00
Chad Rosier
fe2f58c8a1
[AArch64] Add support for NEON scalar extract narrow instructions.
...
llvm-svn: 192970
2013-10-18 14:03:24 +00:00
Chad Rosier
37d29173aa
[AArch64] Add support for NEON scalar three register different instruction
...
class. The instruction class includes the signed saturating doubling
multiply-add long, signed saturating doubling multiply-subtract long, and
the signed saturating doubling multiply long instructions.
llvm-svn: 192908
2013-10-17 18:12:29 +00:00
Chad Rosier
846a72539c
[AArch64] Add support for NEON scalar negate instruction.
...
llvm-svn: 192843
2013-10-16 21:04:39 +00:00
Chad Rosier
175601d997
[AArch64] Add support for NEON scalar absolute value instruction.
...
llvm-svn: 192842
2013-10-16 21:04:34 +00:00
Chad Rosier
abe458d0bf
Update comment.
...
llvm-svn: 192806
2013-10-16 16:30:10 +00:00
Chad Rosier
178b1cefc7
[AArch64] Add support for NEON scalar signed saturating accumulated of unsigned
...
value and unsigned saturating accumulate of signed value instructions.
llvm-svn: 192800
2013-10-16 16:09:02 +00:00
Chad Rosier
9d51708677
[AArch64] Add support for NEON scalar signed saturating absolute value and
...
scalar signed saturating negate instructions.
llvm-svn: 192733
2013-10-15 21:18:44 +00:00
Chad Rosier
d1f40d760a
[AArch64] Add support for NEON scalar integer compare instructions.
...
llvm-svn: 192596
2013-10-14 14:37:20 +00:00
Kevin Qin
a89e7a0e1c
Implement aarch64 neon instruction set AdvSIMD (copy).
...
llvm-svn: 192410
2013-10-11 02:33:55 +00:00
Hao Liu
99eac7ee44
Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
...
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).
llvm-svn: 192361
2013-10-10 17:00:52 +00:00
Rafael Espindola
9558af461d
Revert "Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem). Including following 14 instructions: 4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers. ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4). 4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers. st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4)."
...
This reverts commit r192352. It broke the build.
llvm-svn: 192354
2013-10-10 15:15:17 +00:00
Hao Liu
9123ad8ab9
Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
...
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).
llvm-svn: 192352
2013-10-10 15:01:24 +00:00
Tim Northover
74cf0bd77d
AArch64: migrate ADRP relaxation test to be llvm-mc only.
...
llvm-svn: 192281
2013-10-09 07:53:49 +00:00
Chad Rosier
9849cc6696
[AArch64] Add support for NEON scalar floating-point reciprocal estimate,
...
reciprocal exponent, and reciprocal square root estimate instructions.
llvm-svn: 192242
2013-10-08 22:09:04 +00:00
Chad Rosier
f7ed96ef76
[AArch64] Add support for NEON scalar signed/unsigned integer to floating-point
...
convert instructions.
llvm-svn: 192231
2013-10-08 20:43:30 +00:00
Chad Rosier
b6ceeb9126
[AArch64] Add support for NEON scalar arithmetic instructions:
...
SQDMULH, SQRDMULH, FMULX, FRECPS, and FRSQRTS.
llvm-svn: 192107
2013-10-07 16:36:15 +00:00
Jiangning Liu
ad242fbb71
Implement aarch64 neon instruction set AdvSIMD (Across).
...
llvm-svn: 192028
2013-10-05 08:22:10 +00:00
Jiangning Liu
ac5fd7e5d3
Implement aarch64 neon instruction set AdvSIMD (3V elem).
...
llvm-svn: 191944
2013-10-04 09:20:44 +00:00
Jiangning Liu
63dc840fc5
Initial support for Neon scalar instructions.
...
Patch by Ana Pazos.
1.Added support for v1ix and v1fx types.
2.Added Scalar Pairwise Reduce instructions.
3.Added initial implementation of Scalar Arithmetic instructions.
llvm-svn: 191263
2013-09-24 02:47:27 +00:00
Kevin Qin
36399e6b68
Implement 3 AArch64 neon instructions : umov smov ins.
...
llvm-svn: 190839
2013-09-17 02:21:02 +00:00
Tim Northover
635a979038
AArch64: use RegisterOperand for NEON registers.
...
Previously we modelled VPR128 and VPR64 as essentially identical
register-classes containing V0-V31 (which had Q0-Q31 as "sub_alias"
sub-registers). This model is starting to cause significant problems
for code generation, particularly writing EXTRACT/INSERT_SUBREG
patterns for converting between the two.
The change here switches to classifying VPR64 & VPR128 as
RegisterOperands, which are essentially aliases for RegisterClasses
with different parsing and printing behaviour. This fits almost
exactly with their real status (VPR128 == FPR128 printed strangely,
VPR64 == FPR64 printed strangely).
llvm-svn: 190665
2013-09-13 07:26:52 +00:00
Jiangning Liu
2878dc8fe7
Implement aarch64 neon instruction set AdvSIMD (3V Diff), covering the following 26 instructions,
...
SADDL, UADDL, SADDW, UADDW, SSUBL, USUBL, SSUBW, USUBW, ADDHN, RADDHN, SABAL, UABAL, SUBHN, RSUBHN, SABDL, UABDL, SMLAL, UMLAL, SMLSL, UMLSL, SQDMLAL, SQDMLSL, SMULL, UMULL, SQDMULL, PMULL
llvm-svn: 190288
2013-09-09 02:20:27 +00:00