Subzero: fix assert for sqrt of vector float types

Subzero's sqrt intrinsic implementation was assuming only scalar float
args when moving the result to the destination, despite its sqrt
implementation supporting vector float.

Bug: b/130459196
Change-Id: I1c5baf2dc72448785add421c87900964f877ce6f
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/38872
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Antonio Maiorano <amaiorano@google.com>
diff --git a/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h b/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h
index e7d04f6..96e3e6b 100644
--- a/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h
+++ b/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h
@@ -4439,7 +4439,11 @@
     Variable *Dest = Instr->getDest();
     Variable *T = makeReg(Dest->getType());
     _sqrt(T, Src);
-    _mov(Dest, T);
+    if (isVectorType(Dest->getType())) {
+      _movp(Dest, T);
+    } else {
+      _mov(Dest, T);
+    }
     return;
   }
   case Intrinsics::Stacksave: {