for_exit600: ; preds = %for_loop599
ret void
}
+
+define <4 x i32> @pcmpgt(<4 x i8> %x) {
+; AVX-LABEL: pcmpgt:
+; AVX: # %bb.0:
+; AVX-NEXT: vpmovzxbd {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero
+; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
+; AVX-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
+; AVX-NEXT: vpcmpeqd %xmm1, %xmm1, %xmm1
+; AVX-NEXT: vpxor %xmm1, %xmm0, %xmm0
+; AVX-NEXT: retq
+;
+; KNL-32-LABEL: pcmpgt:
+; KNL-32: # %bb.0:
+; KNL-32-NEXT: vpmovzxbd {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero
+; KNL-32-NEXT: vpxor %xmm1, %xmm1, %xmm1
+; KNL-32-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm0
+; KNL-32-NEXT: vpternlogq $15, %zmm0, %zmm0, %zmm0
+; KNL-32-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
+; KNL-32-NEXT: retl
+ %zext = zext <4 x i8> %x to <4 x i32>
+ %icmp = icmp ne <4 x i32> %zext, zeroinitializer
+ %sext = sext <4 x i1> %icmp to <4 x i32>
+ ret <4 x i32> %sext
+}