[llvm] [RISCV][GISEL] Legalize G_BITCAST for scalable vectors (PR #85970)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 20 12:38:10 PDT 2024


================
@@ -155,6 +155,9 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
 
   getActionDefinitionsBuilder(G_BITREVERSE).maxScalar(0, sXLen).lower();
 
+  getActionDefinitionsBuilder(G_BITCAST).legalIf(
+      all(isScalableVector(0), isScalableVector(1)));
----------------
topperc wrote:

> For scalable vectors there is no total vector size.

There is a symbolic representation of the total vector size that TypeSize can represent. As long as the the TypeSizes are both scalable and have the same minimum size, the bitcast is valid.

https://github.com/llvm/llvm-project/pull/85970


More information about the llvm-commits mailing list