Remove intrinsic from Vector4:op_Division(struct,float) (dotnet/corefx#27122)
authorBen Adams <thundercat@illyriad.co.uk>
Thu, 15 Feb 2018 16:10:22 +0000 (16:10 +0000)
committerEric Erhardt <eric.erhardt@microsoft.com>
Thu, 15 Feb 2018 16:10:22 +0000 (10:10 -0600)
* Remove intrinsic from Vector4:op_Division(struct,float)

* feedback

Commit migrated from https://github.com/dotnet/corefx/commit/820949492d84ed81c6f793e142b54f33cbd65524

src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector2_Intrinsics.cs
src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector3_Intrinsics.cs
src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector4_Intrinsics.cs

index 97573d9..59db2b0 100644 (file)
@@ -248,14 +248,10 @@ namespace System.Numerics
         /// <param name="value1">The source vector.</param>
         /// <param name="value2">The scalar value.</param>
         /// <returns>The result of the division.</returns>
-        [Intrinsic]
         [MethodImpl(MethodImplOptions.AggressiveInlining)]
         public static Vector2 operator /(Vector2 value1, float value2)
         {
-            float invDiv = 1.0f / value2;
-            return new Vector2(
-                value1.X * invDiv,
-                value1.Y * invDiv);
+            return value1 / new Vector2(value2);
         }
 
         /// <summary>
index ecd69b7..b8c034a 100644 (file)
@@ -267,16 +267,10 @@ namespace System.Numerics
         /// <param name="value1">The source vector.</param>
         /// <param name="value2">The scalar value.</param>
         /// <returns>The result of the division.</returns>
-        [Intrinsic]
         [MethodImpl(MethodImplOptions.AggressiveInlining)]
         public static Vector3 operator /(Vector3 value1, float value2)
         {
-            float invDiv = 1.0f / value2;
-
-            return new Vector3(
-                value1.X * invDiv,
-                value1.Y * invDiv,
-                value1.Z * invDiv);
+            return value1 / new Vector3(value2);
         }
 
         /// <summary>
index 036796e..067b387 100644 (file)
@@ -301,17 +301,10 @@ namespace System.Numerics
         /// <param name="value1">The source vector.</param>
         /// <param name="value2">The scalar value.</param>
         /// <returns>The result of the division.</returns>
-        [Intrinsic]
         [MethodImpl(MethodImplOptions.AggressiveInlining)]
         public static Vector4 operator /(Vector4 value1, float value2)
         {
-            float invDiv = 1.0f / value2;
-
-            return new Vector4(
-                value1.X * invDiv,
-                value1.Y * invDiv,
-                value1.Z * invDiv,
-                value1.W * invDiv);
+            return value1 / new Vector4(value2);
         }
 
         /// <summary>