[PATCH] D70000: [DAGCombine] Initialize the default operation action for SIGN_EXTEND_INREG for vector type as 'expand' instead of 'legal'

Krzysztof Parzyszek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 21 11:00:07 PST 2019


kparzysz added inline comments.


================
Comment at: llvm/lib/Target/Hexagon/HexagonISelLowering.cpp:1540
+  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i16, Legal);
+  setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i32, Legal);
+
----------------
The types should be `v2i8`, `v4i8`, and `v2i16`.


================
Comment at: llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp:23
+static const MVT InRegV128[] = { MVT::v64i8, MVT::v64i16, MVT::v32i8,
+                                 MVT::v32i16, MVT::v32i32 };
 
----------------
Please do not use globals for this.


================
Comment at: llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp:64
   ArrayRef<MVT> LegalW = Use64b ? LegalW64 : LegalW128;
+  ArrayRef<MVT> InRegV = Use64b ? InRegV64 : InRegV128;
   MVT ByteV = Use64b ?  MVT::v64i8 : MVT::v128i8;
----------------
Please remove this.


================
Comment at: llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp:203
+    setOperationAction(ISD::SIGN_EXTEND_INREG, T,  Legal);
+
   setTargetDAGCombine(ISD::VSELECT);
----------------
Please replace this with

```
if (Use64b) {
  for (MVT T : {MVT::v16i8, MVT::v32i8, MVT::v16i16})
    setOperationAction(ISD::SIGN_EXTEND_INREG, T, Legal);
} else {
  for (MVT T : {MVT::v32i8, MVT::v64i8, MVT::v32i16})
    setOperationAction(ISD::SIGN_EXTEND_INREG, T, Legal);
}
```


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70000/new/

https://reviews.llvm.org/D70000





More information about the llvm-commits mailing list