Commit a29da906 by Nicolas Capens Committed by Nicolas Capens

Ensure that the sub-vector load destination is a register.

BUG=swiftshader:15 Change-Id: I7e10342fa1ef9bce22bc8c445240fc34a68e8f47 Reviewed-on: https://chromium-review.googlesource.com/414992Reviewed-by: 's avatarJim Stichnoth <stichnot@chromium.org>
parent e1e17832
......@@ -4397,17 +4397,19 @@ void TargetX86Base<TraitsType>::lowerIntrinsicCall(
return;
}
auto *T = makeReg(Ty);
switch (SubVectorSize->getValue()) {
case 4:
_movd(Dest, Src);
_movd(T, Src);
break;
case 8:
_movq(Dest, Src);
_movq(T, Src);
break;
default:
Func->setError("Unexpected size for LoadSubVector");
return;
}
_movp(Dest, T);
return;
}
case Intrinsics::StoreSubVector: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment