From fca68496ccae9ea38c725a3c116bead83498321d Mon Sep 17 00:00:00 2001 From: Ben Adams Date: Thu, 15 Feb 2018 16:10:22 +0000 Subject: [PATCH] Remove intrinsic from Vector4:op_Division(struct,float) (dotnet/corefx#27122) * Remove intrinsic from Vector4:op_Division(struct,float) * feedback Commit migrated from https://github.com/dotnet/corefx/commit/820949492d84ed81c6f793e142b54f33cbd65524 --- .../src/System/Numerics/Vector2_Intrinsics.cs | 6 +----- .../src/System/Numerics/Vector3_Intrinsics.cs | 8 +------- .../src/System/Numerics/Vector4_Intrinsics.cs | 9 +-------- 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector2_Intrinsics.cs b/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector2_Intrinsics.cs index 97573d9..59db2b0 100644 --- a/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector2_Intrinsics.cs +++ b/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector2_Intrinsics.cs @@ -248,14 +248,10 @@ namespace System.Numerics /// The source vector. /// The scalar value. /// The result of the division. - [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); } /// diff --git a/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector3_Intrinsics.cs b/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector3_Intrinsics.cs index ecd69b7..b8c034a 100644 --- a/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector3_Intrinsics.cs +++ b/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector3_Intrinsics.cs @@ -267,16 +267,10 @@ namespace System.Numerics /// The source vector. /// The scalar value. /// The result of the division. - [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); } /// diff --git a/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector4_Intrinsics.cs b/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector4_Intrinsics.cs index 036796e..067b387 100644 --- a/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector4_Intrinsics.cs +++ b/src/libraries/System.Numerics.Vectors/src/System/Numerics/Vector4_Intrinsics.cs @@ -301,17 +301,10 @@ namespace System.Numerics /// The source vector. /// The scalar value. /// The result of the division. - [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); } /// -- 2.7.4