git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307184
91177308-0d34-0410-b5e6-
96231b3b80d8
SDValue N1 = N->getOperand(1);
EVT VT = N->getValueType(0);
+ // fold (rot x, 0) -> x
+ if (isNullConstantOrNullSplatConstant(N1))
+ return N0;
+
// fold (rot* x, (trunc (and y, c))) -> (rot* x, (and (trunc y), (trunc c))).
if (N1.getOpcode() == ISD::TRUNCATE &&
N1.getOperand(0).getOpcode() == ISD::AND) {
define <4 x i32> @combine_vec_rot_rot_splat_zero(<4 x i32> %x) {
; XOP-LABEL: combine_vec_rot_rot_splat_zero:
; XOP: # BB#0:
-; XOP-NEXT: vprotd $0, %xmm0, %xmm0
; XOP-NEXT: retq
;
; AVX512-LABEL: combine_vec_rot_rot_splat_zero: