Remove legacy 64-bit intrinsic APIs
[platform/upstream/coreclr.git] / src / System.Private.CoreLib / shared / System / Runtime / Intrinsics / X86 / Sse42.PlatformNotSupported.cs
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4
5 using System;
6 using System.Runtime.Intrinsics;
7
8 namespace System.Runtime.Intrinsics.X86
9 {
10     /// <summary>
11     /// This class provides access to Intel SSE4.2 hardware instructions via intrinsics
12     /// </summary>
13     [CLSCompliant(false)]
14     public abstract class Sse42 : Sse41
15     {
16         internal Sse42() { }
17
18         public new static bool IsSupported { get { return false; } }
19
20         public new abstract class X64 : Sse41.X64
21         {
22             internal X64() { }
23
24             public new static bool IsSupported { get { return false; } }
25
26             /// <summary>
27             /// unsigned __int64 _mm_crc32_u64 (unsigned __int64 crc, unsigned __int64 v)
28             ///   CRC32 reg, reg/m64
29             /// This intrinisc is only available on 64-bit processes
30             /// </summary>
31             public static ulong Crc32(ulong crc, ulong data) { throw new PlatformNotSupportedException(); }
32         }
33         
34         /// <summary>
35         /// __m128i _mm_cmpgt_epi64 (__m128i a, __m128i b)
36         ///   PCMPGTQ xmm, xmm/m128
37         /// </summary>
38         public static Vector128<long> CompareGreaterThan(Vector128<long> left, Vector128<long> right) { throw new PlatformNotSupportedException(); }
39
40         /// <summary>
41         /// unsigned int _mm_crc32_u8 (unsigned int crc, unsigned char v)
42         ///   CRC32 reg, reg/m8
43         /// </summary>
44         public static uint Crc32(uint crc, byte data) { throw new PlatformNotSupportedException(); }
45         /// <summary>
46         /// unsigned int _mm_crc32_u16 (unsigned int crc, unsigned short v)
47         ///   CRC32 reg, reg/m16
48         /// </summary>
49         public static uint Crc32(uint crc, ushort data) { throw new PlatformNotSupportedException(); }
50         /// <summary>
51         /// unsigned int _mm_crc32_u32 (unsigned int crc, unsigned int v)
52         ///   CRC32 reg, reg/m32
53         /// </summary>
54         public static uint Crc32(uint crc, uint data) { throw new PlatformNotSupportedException(); }
55     }
56 }