[PATCH] D61114: [SelectionDAG] Use stack load/store in PromoteIntRes_BITCAST when the input needs to be be split and the output type is a vector.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 25 12:26:16 PDT 2019


efriedma added inline comments.


================
Comment at: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:326
+    }
+    break;
   }
----------------
I wonder if there's anything else which would be reasonable to do on a target-independent basis...

I guess on x86, for a bitcast like `bitcast <64 x i1> %1 to <2 x i32>`, the optimal lowering is actually involves splitting the operation: you then have two `bitcast <32 x i1> %1 to i32`, which has an existing efficient custom lowering.  Then you use a BUILD_VECTOR to turn the two results into a `<2 x i32>`.  But I'm not sure that generalizes in a useful way.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D61114





More information about the llvm-commits mailing list