[llvm] 02e7479 - [Hexagon] Add patterns for select(i1, Q, Q)

Krzysztof Parzyszek via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 11 09:45:41 PST 2022


Author: Krzysztof Parzyszek
Date: 2022-02-11T09:45:20-08:00
New Revision: 02e7479e6bd36ab1b3124fff76302f125d96b176

URL: https://github.com/llvm/llvm-project/commit/02e7479e6bd36ab1b3124fff76302f125d96b176
DIFF: https://github.com/llvm/llvm-project/commit/02e7479e6bd36ab1b3124fff76302f125d96b176.diff

LOG: [Hexagon] Add patterns for select(i1, Q, Q)

Added: 
    

Modified: 
    llvm/lib/Target/Hexagon/HexagonPatternsHVX.td

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td b/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
index 0a3dff057ccd..bdd46cfe7152 100644
--- a/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
+++ b/llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
@@ -738,9 +738,14 @@ let Predicates = [UseHVX] in {
 
 def V2Q: OutPatFrag<(ops node:$Vs), (V6_vandvrt $Vs, (A2_tfrsi -1))>;
 
-let Predicates = [UseHVX] in
-  def: Pat<(select I1:$Pu, VecI1:$Qs, VecI1:$Qt),
+let Predicates = [UseHVX] in {
+  def: Pat<(select I1:$Pu, VecQ8:$Qs, VecQ8:$Qt),
+           (V2Q (PS_vselect $Pu, (Q2V $Qs), (Q2V $Qt)))>;
+  def: Pat<(select I1:$Pu, VecQ16:$Qs, VecQ16:$Qt),
            (V2Q (PS_vselect $Pu, (Q2V $Qs), (Q2V $Qt)))>;
+  def: Pat<(select I1:$Pu, VecQ32:$Qs, VecQ32:$Qt),
+           (V2Q (PS_vselect $Pu, (Q2V $Qs), (Q2V $Qt)))>;
+}
 
 let Predicates = [UseHVX] in {
   def: Pat<(VecQ8   (qtrue)), (PS_qtrue)>;


        


More information about the llvm-commits mailing list