[llvm] Perform bitreverse using AVX512 GFNI for i32 and i64. (PR #81764)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 10 09:25:29 PDT 2024


================
@@ -31332,6 +31337,21 @@ static SDValue LowerBITREVERSE(SDValue Op, const X86Subtarget &Subtarget,
   if (VT.is256BitVector() && !Subtarget.hasInt256())
     return splitVectorIntUnary(Op, DAG, DL);
 
+  // Lower i32/i64 to GFNI as vXi8 BITREVERSE + BSWAP
+  if (!VT.isVector()) {
+
+    assert ((VT.getScalarType() == MVT::i32) || (VT.getScalarType() == MVT::i64));
+
+    MVT SVT = VT.getScalarType();
----------------
RKSimon wrote:

Remove SVT - its guaranteed to be the same as VT

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


More information about the llvm-commits mailing list