[X86] LowerRotate - fix assertion. NFC.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 6 Dec 2021 19:45:40 +0000 (19:45 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 6 Dec 2021 19:46:22 +0000 (19:46 +0000)
v32i16 rotation lowering is only lowered on non-BWI targets.

llvm/lib/Target/X86/X86ISelLowering.cpp

index f412292..660cf62 100644 (file)
@@ -29844,9 +29844,9 @@ static SDValue LowerRotate(SDValue Op, const X86Subtarget &Subtarget,
     return splitVectorIntBinary(Op, DAG);
 
   assert((VT == MVT::v4i32 || VT == MVT::v8i16 || VT == MVT::v16i8 ||
-          ((VT == MVT::v8i32 || VT == MVT::v16i16 || VT == MVT::v32i8 ||
-            VT == MVT::v32i16) &&
-           Subtarget.hasAVX2())) &&
+          ((VT == MVT::v8i32 || VT == MVT::v16i16 || VT == MVT::v32i8) &&
+           Subtarget.hasAVX2()) ||
+          (VT == MVT::v32i16 && !Subtarget.useBWIRegs())) &&
          "Only vXi32/vXi16/vXi8 vector rotates supported");
 
   // Rotate by an uniform constant - expand back to shifts.