+define <64 x i8> @_invec32xi8(<32 x i8>%a) {
+; AVX512F-LABEL: _invec32xi8:
+; AVX512F: # BB#0:
+; AVX512F-NEXT: vpbroadcastb %xmm0, %ymm0
+; AVX512F-NEXT: vmovaps %zmm0, %zmm1
+; AVX512F-NEXT: retq
+;
+; AVX512BW-LABEL: _invec32xi8:
+; AVX512BW: # BB#0:
+; AVX512BW-NEXT: vpbroadcastb %xmm0, %zmm0
+; AVX512BW-NEXT: retq
+ %res = shufflevector <32 x i8> %a, <32 x i8> undef, <64 x i32> zeroinitializer
+ ret <64 x i8>%res
+}
+
+define <32 x i16> @_invec16xi16(<16 x i16>%a) {
+; AVX512F-LABEL: _invec16xi16:
+; AVX512F: # BB#0:
+; AVX512F-NEXT: vpbroadcastw %xmm0, %ymm0
+; AVX512F-NEXT: vmovaps %zmm0, %zmm1
+; AVX512F-NEXT: retq
+;
+; AVX512BW-LABEL: _invec16xi16:
+; AVX512BW: # BB#0:
+; AVX512BW-NEXT: vpbroadcastw %xmm0, %zmm0
+; AVX512BW-NEXT: retq
+ %res = shufflevector <16 x i16> %a, <16 x i16> undef, <32 x i32> zeroinitializer
+ ret <32 x i16>%res
+}
+
+define <16 x i32> @_invec8xi32(<8 x i32>%a) {
+; ALL-LABEL: _invec8xi32:
+; ALL: # BB#0:
+; ALL-NEXT: vpbroadcastd %xmm0, %zmm0
+; ALL-NEXT: retq