Krzysztof Parzyszek
29832a6c8b
[Hexagon] Fix operand-swapping PatFrag for atomic stores
...
PatFrag now has the atomicity information stored as bit fields. They
need to be copied to the new PatFrag.
llvm-svn: 320855
2017-12-15 20:13:57 +00:00
Krzysztof Parzyszek
a8ab1b75cb
[Hexagon] Add support for Hexagon V65
...
llvm-svn: 320404
2017-12-11 18:57:54 +00:00
Krzysztof Parzyszek
6acecc96ac
[Hexagon] Remove trailing spaces, NFC
...
llvm-svn: 318875
2017-11-22 20:43:00 +00:00
Sumanth Gundapaneni
e1983bcf55
[Hexagon] New HVX target features.
...
This patch lets the llvm tools handle the new HVX target features that
are added by frontend (clang). The target-features are of the form
"hvx-length64b" for 64 Byte HVX mode, "hvx-length128b" for 128 Byte mode HVX.
"hvx-double" is an alias to "hvx-length128b" and is soon will be deprecated.
The hvx version target feature is upgated form "+hvx" to "+hvxv{version_number}.
Eg: "+hvxv62"
For the correct HVX code generation, the user must use the following
target features.
For 64B mode: "+hvxv62" "+hvx-length64b"
For 128B mode: "+hvxv62" "+hvx-length128b"
Clang picks a default length if none is specified. If for some reason,
no hvx-length is specified to llvm, the compilation will bail out.
There is a corresponding clang patch.
Differential Revision: https://reviews.llvm.org/D38851
llvm-svn: 316101
2017-10-18 18:07:07 +00:00
Krzysztof Parzyszek
9c084fc55d
[Hexagon] Add intrinsics for data cache operations
...
This is the LLVM part, adding definitions for
void @llvm.hexagon.Y2.dccleana(i8*)
void @llvm.hexagon.Y2.dccleaninva(i8*)
void @llvm.hexagon.Y2.dcinva(i8*)
void @llvm.hexagon.Y2.dczeroa(i8*)
void @llvm.hexagon.Y4.l2fetch(i8*, i32)
void @llvm.hexagon.Y5.l2fetch(i8*, i64)
The clang part will follow.
llvm-svn: 308032
2017-07-14 15:58:48 +00:00
Krzysztof Parzyszek
65971d97b0
[Hexagon] Add intrinsics for masked vector stores
...
Patch by Harsha Jagasia.
llvm-svn: 295879
2017-02-22 21:23:09 +00:00
Krzysztof Parzyszek
a72fad980c
[Hexagon] Replace instruction definitions with auto-generated ones
...
llvm-svn: 294753
2017-02-10 15:33:13 +00:00
Krzysztof Parzyszek
639545b4d8
[Hexagon] Enforce LLSC packetization rules
...
Ensure that load locked and store conditional instructions are only
packetized with ALU32 instructions.
Patch by Ben Craig.
llvm-svn: 279272
2016-08-19 16:57:05 +00:00
Krzysztof Parzyszek
6895b2ceb2
[Hexagon] Add support for __builtin_prefetch
...
llvm-svn: 261210
2016-02-18 13:58:38 +00:00
Colin LeMahieu
79ec06525e
[Hexagon] Making intrinsic tests agnostic to register allocation. Narrowing intrinsic parameters to appropriate width.
...
llvm-svn: 239634
2015-06-12 19:57:32 +00:00
Colin LeMahieu
cd9cb023d7
[Hexagon] Converting XTYPE/SHIFT intrinsics. Cleaning out old intrinsic patterns and updating tests.
...
llvm-svn: 228026
2015-02-03 20:40:52 +00:00
Colin LeMahieu
cf7248bcaf
[Hexagon] Updating XTYPE/PRED intrinsics.
...
llvm-svn: 228019
2015-02-03 19:43:59 +00:00
Colin LeMahieu
e5daf3abfe
[Hexagon] Updating XTYPE/PERM intrinsics.
...
llvm-svn: 228015
2015-02-03 19:36:59 +00:00
Colin LeMahieu
99cc7c1070
[Hexagon] Adding missing vector multiply instruction encodings. Converting multiply intrinsics and updating tests.
...
llvm-svn: 228010
2015-02-03 19:15:11 +00:00
Colin LeMahieu
a6632452be
[Hexagon] Converting complex number intrinsics and adding tests.
...
llvm-svn: 227995
2015-02-03 18:16:28 +00:00
Colin LeMahieu
cdba4e1bcc
[Hexagon] Adding vector intrinsics for alu32/alu and xtype/alu.
...
llvm-svn: 227993
2015-02-03 18:01:45 +00:00
Colin LeMahieu
1610730faf
[Hexagon] Deleting old variants of intrinsics and adding missing tests.
...
llvm-svn: 227474
2015-01-29 17:26:56 +00:00
Colin LeMahieu
860210bc49
[Hexagon] Adding CR intrinsic tests.
...
llvm-svn: 227463
2015-01-29 16:55:37 +00:00
Colin LeMahieu
a749b3ee6a
[Hexagon] Adding XTYPE/PRED intrinsic tests. Converting predicate types to i32 instead of i1.
...
llvm-svn: 227457
2015-01-29 16:08:43 +00:00
Colin LeMahieu
4379d10273
[Hexagon] Updating several V5 intrinsics and adding FP tests.
...
llvm-svn: 227379
2015-01-28 22:08:16 +00:00
Colin LeMahieu
94c33218e3
[Hexagon] Adding XTYPE/MPY intrinsic tests and some missing multiply instructions.
...
llvm-svn: 227347
2015-01-28 19:16:17 +00:00
Colin LeMahieu
19ed07c75a
[Hexagon] Deleting a lot of old variants of intrinsics and updating references.
...
llvm-svn: 227338
2015-01-28 18:29:11 +00:00
Colin LeMahieu
39b846ce0f
[Hexagon] Converting XTYPE/BIT intrinsic patterns and adding tests.
...
llvm-svn: 227335
2015-01-28 18:06:23 +00:00
Colin LeMahieu
fe03c9a678
[Hexagon] Replacing XTYPE/SHIFT intrinsic patternss. Adding tests and missing instructions with tests.
...
llvm-svn: 227330
2015-01-28 17:37:59 +00:00
Colin LeMahieu
c17902b89b
[Hexagon] Replacing old intrinsic tests with organized versions that match the reference manual.
...
llvm-svn: 227321
2015-01-28 16:58:05 +00:00