[SubZero] Implement Fcmp, ICmp, Cast and Select for vector type
The patch scalarizes Fcmp, ICmp, Cast and Select for operands of vector type.
R=stichnot@chromium.org
Review URL: https://codereview.chromium.org/2412053002 .
Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h
index 82ee5c7..b8bfff0 100644
--- a/src/IceTargetLowering.h
+++ b/src/IceTargetLowering.h
@@ -511,8 +511,11 @@
Variable *T = Func->makeVariable(DestTy);
if (auto *VarVecOn32 = llvm::dyn_cast<VariableVecOn32>(T)) {
VarVecOn32->initVecElement(Func);
+ auto *Undef = ConstantUndef::create(Ctx, DestTy);
+ Context.insert<InstAssign>(T, Undef);
+ } else {
+ Context.insert<InstFakeDef>(T);
}
- Context.insert<InstFakeDef>(T);
for (SizeT I = 0; I < NumElements; ++I) {
auto *Index = Ctx->getConstantInt32(I);