This patch fix a bug result from D63958.
On X86 32 bit, BUILD_VECTOR <2 x i64> will be broke into a combine of BUILD_VECTOR <4 x i32> and bitcast. So we should peek through it, otherwise it may fall into dead loop in some cases. e.g.
1 define <2 x i64> @test(<2 x i64> %a) { 2 %1 = sub <2 x i64> zeroinitializer, %a 3 %2 = icmp eq <2 x i64> %a, zeroinitializer 4 %3 = select <2 x i1> %2, <2 x i64> %a, <2 x i64> %1 5 ret <2 x i64> %3 6 }
llc -mtriple=i686 -matttr=+avx512f -mattr=avx512vl t.ll