Krzysztof Parzyszek
a8ab1b75cb
[Hexagon] Add support for Hexagon V65
...
llvm-svn: 320404
2017-12-11 18:57:54 +00:00
Krzysztof Parzyszek
557729761c
[Hexagon] Switch to parameterized register classes for HVX
...
This removes the duplicate HVX instruction set for the 128-byte mode.
Single instruction set now works for both modes (64- and 128-byte).
llvm-svn: 313362
2017-09-15 15:46:05 +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
f914278f8b
[Hexagon] Round 4 of selection pattern simplifications
...
Give simpler or more meaningful names to pat frags and xforms.
llvm-svn: 286078
2016-11-06 18:09:56 +00:00
Krzysztof Parzyszek
846597d081
[Hexagon] Round 3 of selection pattern simplifications
...
Remove unnecessary C++ functions for SDNode transforms. Move more
pat frags to files where they are used.
llvm-svn: 286077
2016-11-06 18:05:14 +00:00
Krzysztof Parzyszek
654dc11b79
[Hexagon] Rename operand/predicate names for unshifted integers
...
For example, rename s6Ext to s6_0Ext. The names for shifted integers
include the underscore and this will make the naming consistent. It
also exposed a few duplicates that were removed.
llvm-svn: 285728
2016-11-01 19:02:10 +00:00
Krzysztof Parzyszek
e57662d5ec
[Hexagon] Handle operand type differences for A2_tfrpi
...
The instruction A2_tfrpi has a 64-bit operand, while the corresponding
intrinsic takes a 32-bit value. The actual value has only 8 significant
bits, so the difference is only in the type used to represent it.
In order to map the intrinsic to the instruction, the operand needs to
be extended to the correct type.
llvm-svn: 268635
2016-05-05 15:29:47 +00:00
Krzysztof Parzyszek
040bb35d9d
[Hexagon] Use common Pat classes for selecting code for intrinsics
...
llvm-svn: 267178
2016-04-22 18:05:55 +00:00
Krzysztof Parzyszek
7d5b4db7f9
[Hexagon] Eliminate pseudo instructions for circ/brev loads and stores
...
We can generate the actual instructions from the intrinsics without the
need for pseudo-instructions. Also, since the intrinsics have a side-
effect in a form of a store, attempt to optimize away loads from the
store location.
llvm-svn: 260690
2016-02-12 17:01:51 +00:00
Krzysztof Parzyszek
4eb6d4d1f2
[Hexagon] Hexagon V60 HVX intrinsic defintions
...
Author: Ron Lieberman <ronl@codeaurora.org>
llvm-svn: 254165
2015-11-26 16:54:33 +00:00
Krzysztof Parzyszek
05da79d5ac
[Hexagon] Remove the remnants of isConstExtProfitable
...
llvm-svn: 250845
2015-10-20 19:04:53 +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
Krzysztof Parzyszek
47ab1f2007
[Hexagon] Intrinsics for circular and bit-reversed loads and stores
...
llvm-svn: 232645
2015-03-18 16:23:44 +00:00
Krzysztof Parzyszek
6d5a4b5dcd
Eliminate constant-extender profitability checks from Hexagon isel
...
llvm-svn: 231992
2015-03-12 00:19:59 +00:00
Colin LeMahieu
27d50073b3
[Hexagon] Renaming A2_subri, A2_andir, A2_orir. Fixing formatting.
...
llvm-svn: 228326
2015-02-05 18:38:08 +00:00
Colin LeMahieu
f297dbed48
[Hexagon] Renaming A2_addi and formatting.
...
llvm-svn: 228318
2015-02-05 17:49:13 +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
e75aa4983c
[Hexagon] Deleting unused classes.
...
llvm-svn: 227460
2015-01-29 16:35:38 +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
1de7e0d923
[Hexagon] Updating many V4 intrinsic patterns. Adding missing instruction and deleting unused classes.
...
llvm-svn: 227353
2015-01-28 19:39:09 +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
fdbc5adbb6
[Hexagon] Replacing intrinsics for halfword adds and max/min word/dword.
...
llvm-svn: 227322
2015-01-28 17:06:40 +00:00
Colin LeMahieu
94269db8ba
[Hexagon] Converting multiply and accumulate with immediate intrinsics to patterns.
...
llvm-svn: 226681
2015-01-21 18:13:15 +00:00
Colin LeMahieu
988c68f2a7
[Hexagon] Adding intrinsics for doubleword ALU operations.
...
llvm-svn: 226606
2015-01-20 20:45:05 +00:00
Colin LeMahieu
0ee02fc9fe
[Hexagon] Updating muxir/ri/ii intrinsics. Setting predicate registers as compatible with i32 rather than doing custom type conversion.
...
llvm-svn: 226500
2015-01-19 20:31:18 +00:00
Colin LeMahieu
fcd4569af6
[Hexagon] Converting intrinsics combine imm/imm, simple shifts and extends.
...
llvm-svn: 226483
2015-01-19 18:56:19 +00:00
Colin LeMahieu
9327bdad2f
[Hexagon] Converting remaining ALU32/ALU intrinsics.
...
llvm-svn: 226480
2015-01-19 18:33:58 +00:00
Colin LeMahieu
663419b008
[Hexagon] Converting ALU32/ALU intrinsics to new patterns.
...
llvm-svn: 226478
2015-01-19 18:22:19 +00:00
Colin LeMahieu
310bad8b7e
[Hexagon] Converting halfword to double accumulating multiply intrinsics.
...
llvm-svn: 226472
2015-01-19 17:36:32 +00:00
Colin LeMahieu
823415b881
[Hexagon] Converting halfword to doubleword multiply intrinsics.
...
llvm-svn: 226326
2015-01-16 21:41:57 +00:00
Colin LeMahieu
cd9b276966
[Hexagon] Converting accumulating halfword multiply intrinsics to patterns.
...
llvm-svn: 226324
2015-01-16 21:36:34 +00:00
Colin LeMahieu
3b047e0ee5
[Hexagon] Beginning converting intrinsics to patterns instead of duplicated definitions. Converting halfword multiply intrinsics.
...
llvm-svn: 226318
2015-01-16 20:38:54 +00:00
Colin LeMahieu
402f772b82
[Hexagon] Adding doubleregs for control registers. Renaming control register class.
...
llvm-svn: 224598
2014-12-19 18:56:10 +00:00
Craig Topper
c50d64b07b
Replace neverHasSideEffects=1 with hasSideEffects=0 in all .td files.
...
llvm-svn: 222801
2014-11-26 00:46:26 +00:00
Sid Manning
31f7125562
Add missing attributes !cmp.[eq,gt,gtu] instructions.
...
These instructions do not indicate they are extendable or the
number of bits in the extendable operand. Rename to match
architected names. Add a testcase for the intrinsics.
llvm-svn: 218453
2014-09-25 13:09:54 +00:00
Jyotsna Verma
9a103563f4
reverting r209132
...
llvm-svn: 209139
2014-05-19 16:22:11 +00:00
Jyotsna Verma
daeb25d4e0
Hexagon: Add encoding bits to the mpy instructions.
...
llvm-svn: 209132
2014-05-19 15:32:07 +00:00
Sirish Pande
83ccb6ce08
Hexagon V5 intrinsics support.
...
llvm-svn: 156631
2012-05-11 19:39:13 +00:00
Chandler Carruth
3c3bb55a85
Revert r155365, r155366, and r155367. All three of these have regression
...
test suite failures. The failures occur at each stage, and only get
worse, so I'm reverting all of them.
Please resubmit these patches, one at a time, after verifying that the
regression test suite passes. Never submit a patch without running the
regression test suite.
llvm-svn: 155372
2012-04-23 18:25:57 +00:00