summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorColin LeMahieu <colinl@codeaurora.org>2015-01-29 16:08:43 +0000
committerColin LeMahieu <colinl@codeaurora.org>2015-01-29 16:08:43 +0000
commita749b3ee6a1598e1d0050524227f59348098fd30 (patch)
tree9cde2f59d3c01f17b1e716780e73b4fcf0d2979a /llvm/lib
parentbebb0a69eb7d6a75b87591f6d343620033197106 (diff)
downloadbcm5719-llvm-a749b3ee6a1598e1d0050524227f59348098fd30.tar.gz
bcm5719-llvm-a749b3ee6a1598e1d0050524227f59348098fd30.zip
[Hexagon] Adding XTYPE/PRED intrinsic tests. Converting predicate types to i32 instead of i1.
llvm-svn: 227457
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/Hexagon/HexagonIntrinsics.td4
-rw-r--r--llvm/lib/Target/Hexagon/HexagonIntrinsicsV4.td15
-rw-r--r--llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td11
3 files changed, 30 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td
index 0ba96bc60b5..8ec3e11d77b 100644
--- a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td
+++ b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td
@@ -135,6 +135,10 @@ class T_FF_pat <InstHexagon MI, Intrinsic IntID>
: Pat<(IntID F32:$Rs, F32:$Rt),
(MI F32:$Rs, F32:$Rt)>;
+class T_DD_pat <InstHexagon MI, Intrinsic IntID>
+ : Pat<(IntID F64:$Rs, F64:$Rt),
+ (MI F64:$Rs, F64:$Rt)>;
+
class T_FFF_pat <InstHexagon MI, Intrinsic IntID>
: Pat<(IntID F32:$Rs, F32:$Rt, F32:$Ru),
(MI F32:$Rs, F32:$Rt, F32:$Ru)>;
diff --git a/llvm/lib/Target/Hexagon/HexagonIntrinsicsV4.td b/llvm/lib/Target/Hexagon/HexagonIntrinsicsV4.td
index b51adac56a5..4b1cf3f4c02 100644
--- a/llvm/lib/Target/Hexagon/HexagonIntrinsicsV4.td
+++ b/llvm/lib/Target/Hexagon/HexagonIntrinsicsV4.td
@@ -42,6 +42,21 @@ def: T_RR_pat<C4_nbitsset, int_hexagon_C4_nbitsset>;
def: T_RR_pat<C4_nbitsclr, int_hexagon_C4_nbitsclr>;
def: T_RI_pat<C4_nbitsclri, int_hexagon_C4_nbitsclri>;
+def : T_RR_pat<A4_cmpbeq, int_hexagon_A4_cmpbeq>;
+def : T_RR_pat<A4_cmpbgt, int_hexagon_A4_cmpbgt>;
+def : T_RR_pat<A4_cmpbgtu, int_hexagon_A4_cmpbgtu>;
+def : T_RR_pat<A4_cmpheq, int_hexagon_A4_cmpheq>;
+def : T_RR_pat<A4_cmphgt, int_hexagon_A4_cmphgt>;
+def : T_RR_pat<A4_cmphgtu, int_hexagon_A4_cmphgtu>;
+
+def : T_RI_pat<A4_cmpbeqi, int_hexagon_A4_cmpbeqi>;
+def : T_RI_pat<A4_cmpbgti, int_hexagon_A4_cmpbgti>;
+def : T_RI_pat<A4_cmpbgtui, int_hexagon_A4_cmpbgtui>;
+
+def : T_RI_pat<A4_cmpheqi, int_hexagon_A4_cmpheqi>;
+def : T_RI_pat<A4_cmphgti, int_hexagon_A4_cmphgti>;
+def : T_RI_pat<A4_cmphgtui, int_hexagon_A4_cmphgtui>;
+
def : T_RP_pat <A4_boundscheck, int_hexagon_A4_boundscheck>;
def : T_PR_pat<A4_tlbmatch, int_hexagon_A4_tlbmatch>;
diff --git a/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td b/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td
index b9beb301b51..b2abe962717 100644
--- a/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td
+++ b/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td
@@ -33,6 +33,17 @@ def : T_FFF_pat <F2_sffma_lib, int_hexagon_F2_sffma_lib>;
def : T_FFF_pat <F2_sffms_lib, int_hexagon_F2_sffms_lib>;
def : T_FFFQ_pat <F2_sffma_sc, int_hexagon_F2_sffma_sc>;
+// Compare floating-point value
+def : T_FF_pat <F2_sfcmpge, int_hexagon_F2_sfcmpge>;
+def : T_FF_pat <F2_sfcmpuo, int_hexagon_F2_sfcmpuo>;
+def : T_FF_pat <F2_sfcmpeq, int_hexagon_F2_sfcmpeq>;
+def : T_FF_pat <F2_sfcmpgt, int_hexagon_F2_sfcmpgt>;
+
+def : T_DD_pat <F2_dfcmpeq, int_hexagon_F2_dfcmpeq>;
+def : T_DD_pat <F2_dfcmpgt, int_hexagon_F2_dfcmpgt>;
+def : T_DD_pat <F2_dfcmpge, int_hexagon_F2_dfcmpge>;
+def : T_DD_pat <F2_dfcmpuo, int_hexagon_F2_dfcmpuo>;
+
// Create floating-point value
def : T_I_pat <F2_sfimm_p, int_hexagon_F2_sfimm_p>;
def : T_I_pat <F2_sfimm_n, int_hexagon_F2_sfimm_n>;
OpenPOWER on IntegriCloud