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.
6 using System.Collections.Generic;
8 namespace JIT.HardwareIntrinsics.X86
10 public static partial class Program
14 TestList = new Dictionary<string, Action>() {
15 ["Add.Double"] = AddDouble,
16 ["Add.Single"] = AddSingle,
17 ["AddSubtract.Double"] = AddSubtractDouble,
18 ["AddSubtract.Single"] = AddSubtractSingle,
19 ["And.Double"] = AndDouble,
20 ["And.Single"] = AndSingle,
21 ["AndNot.Double"] = AndNotDouble,
22 ["AndNot.Single"] = AndNotSingle,
23 ["BlendVariable.Double"] = BlendVariableDouble,
24 ["BlendVariable.Single"] = BlendVariableSingle,
25 ["Ceiling.Double"] = CeilingDouble,
26 ["Ceiling.Single"] = CeilingSingle,
27 ["Divide.Double"] = DivideDouble,
28 ["Divide.Single"] = DivideSingle,
29 ["DuplicateEvenIndexed.Double"] = DuplicateEvenIndexedDouble,
30 ["DuplicateEvenIndexed.Single"] = DuplicateEvenIndexedSingle,
31 ["DuplicateOddIndexed.Single"] = DuplicateOddIndexedSingle,
32 ["Extract.Byte.1"] = ExtractByte1,
33 ["Extract.Byte.20"] = ExtractByte20,
34 ["Extract.Byte.52"] = ExtractByte52,
35 ["Extract.UInt16.1"] = ExtractUInt161,
36 ["Extract.UInt16.11"] = ExtractUInt1611,
37 ["Extract.UInt16.27"] = ExtractUInt1627,
38 ["Extract.Int32.1"] = ExtractInt321,
39 ["Extract.UInt32.1"] = ExtractUInt321,
40 ["Extract.Int32.6"] = ExtractInt326,
41 ["Extract.UInt32.6"] = ExtractUInt326,
42 ["Extract.Int32.22"] = ExtractInt3222,
43 ["Extract.UInt32.22"] = ExtractUInt3222,
44 ["Extract.Int64.1"] = ExtractInt641,
45 ["Extract.UInt64.1"] = ExtractUInt641,
46 ["Extract.Int64.3"] = ExtractInt643,
47 ["Extract.UInt64.3"] = ExtractUInt643,
48 ["Extract.Int64.19"] = ExtractInt6419,
49 ["Extract.UInt64.19"] = ExtractUInt6419,
50 ["ExtractVector128.Byte.1.Store"] = ExtractVector128Byte1Store,
51 ["ExtractVector128.SByte.1.Store"] = ExtractVector128SByte1Store,
52 ["ExtractVector128.Int16.1.Store"] = ExtractVector128Int161Store,
53 ["ExtractVector128.UInt16.1.Store"] = ExtractVector128UInt161Store,
54 ["ExtractVector128.Int32.1.Store"] = ExtractVector128Int321Store,
55 ["ExtractVector128.UInt32.1.Store"] = ExtractVector128UInt321Store,
56 ["ExtractVector128.Int64.1.Store"] = ExtractVector128Int641Store,
57 ["ExtractVector128.UInt64.1.Store"] = ExtractVector128UInt641Store,
58 ["ExtractVector128.Single.1.Store"] = ExtractVector128Single1Store,
59 ["ExtractVector128.Double.1.Store"] = ExtractVector128Double1Store,
60 ["Insert.Byte.1"] = InsertByte1,
61 ["Insert.Byte.20"] = InsertByte20,
62 ["Insert.SByte.1"] = InsertSByte1,
63 ["Insert.SByte.20"] = InsertSByte20,
64 ["Insert.Byte.52"] = InsertByte52,
65 ["Insert.SByte.52"] = InsertSByte52,
66 ["Insert.Int16.1"] = InsertInt161,
67 ["Insert.Int16.11"] = InsertInt1611,
68 ["Insert.UInt16.1"] = InsertUInt161,
69 ["Insert.UInt16.11"] = InsertUInt1611,
70 ["Insert.Int16.27"] = InsertInt1627,
71 ["Insert.UInt16.27"] = InsertUInt1627,
72 ["Insert.Int32.1"] = InsertInt321,
73 ["Insert.Int32.6"] = InsertInt326,
74 ["Insert.UInt32.1"] = InsertUInt321,
75 ["Insert.UInt32.6"] = InsertUInt326,
76 ["Insert.Int32.22"] = InsertInt3222,
77 ["Insert.UInt32.22"] = InsertUInt3222,
78 ["Insert.Int64.1"] = InsertInt641,
79 ["Insert.Int64.3"] = InsertInt643,
80 ["Insert.UInt64.1"] = InsertUInt641,
81 ["Insert.UInt64.3"] = InsertUInt643,
82 ["Insert.Int64.19"] = InsertInt6419,
83 ["Insert.UInt64.19"] = InsertUInt6419,
84 ["InsertVector128.Byte.1.Load"] = InsertVector128Byte1Load,
85 ["InsertVector128.SByte.1.Load"] = InsertVector128SByte1Load,
86 ["InsertVector128.Int16.1.Load"] = InsertVector128Int161Load,
87 ["InsertVector128.UInt16.1.Load"] = InsertVector128UInt161Load,
88 ["InsertVector128.Int32.1.Load"] = InsertVector128Int321Load,
89 ["InsertVector128.UInt32.1.Load"] = InsertVector128UInt321Load,
90 ["InsertVector128.Int64.1.Load"] = InsertVector128Int641Load,
91 ["InsertVector128.UInt64.1.Load"] = InsertVector128UInt641Load,
92 ["InsertVector128.Single.1.Load"] = InsertVector128Single1Load,
93 ["InsertVector128.Double.1.Load"] = InsertVector128Double1Load,
94 ["Floor.Double"] = FloorDouble,
95 ["Floor.Single"] = FloorSingle,
96 ["GetLowerHalf.Byte"] = GetLowerHalfByte,
97 ["GetLowerHalf.Double"] = GetLowerHalfDouble,
98 ["GetLowerHalf.Int16"] = GetLowerHalfInt16,
99 ["GetLowerHalf.Int32"] = GetLowerHalfInt32,
100 ["GetLowerHalf.Int64"] = GetLowerHalfInt64,
101 ["GetLowerHalf.SByte"] = GetLowerHalfSByte,
102 ["GetLowerHalf.Single"] = GetLowerHalfSingle,
103 ["GetLowerHalf.UInt16"] = GetLowerHalfUInt16,
104 ["GetLowerHalf.UInt32"] = GetLowerHalfUInt32,
105 ["GetLowerHalf.UInt64"] = GetLowerHalfUInt64,
106 ["MaskLoad.Double"] = MaskLoadDouble,
107 ["MaskLoad.Single"] = MaskLoadSingle,
108 ["MaskStore.Double"] = MaskStoreDouble,
109 ["MaskStore.Single"] = MaskStoreSingle,
110 ["Max.Double"] = MaxDouble,
111 ["Max.Single"] = MaxSingle,
112 ["Min.Double"] = MinDouble,
113 ["Min.Single"] = MinSingle,
114 ["Multiply.Double"] = MultiplyDouble,
115 ["Multiply.Single"] = MultiplySingle,
116 ["Or.Double"] = OrDouble,
117 ["Or.Single"] = OrSingle,
118 ["Permute.Single.1"] = PermuteSingle1,
119 ["Permute.Double.1"] = PermuteDouble1,
120 ["Permute.Single.2"] = PermuteSingle2,
121 ["Permute.Double.2"] = PermuteDouble2,
122 ["RoundCurrentDirection.Double"] = RoundCurrentDirectionDouble,
123 ["RoundCurrentDirection.Single"] = RoundCurrentDirectionSingle,
124 ["RoundToNearestInteger.Double"] = RoundToNearestIntegerDouble,
125 ["RoundToNearestInteger.Single"] = RoundToNearestIntegerSingle,
126 ["RoundToNegativeInfinity.Double"] = RoundToNegativeInfinityDouble,
127 ["RoundToNegativeInfinity.Single"] = RoundToNegativeInfinitySingle,
128 ["RoundToPositiveInfinity.Double"] = RoundToPositiveInfinityDouble,
129 ["RoundToPositiveInfinity.Single"] = RoundToPositiveInfinitySingle,
130 ["RoundToZero.Double"] = RoundToZeroDouble,
131 ["RoundToZero.Single"] = RoundToZeroSingle,
132 ["Shuffle.Single.1"] = ShuffleSingle1,
133 ["Shuffle.Double.1"] = ShuffleDouble1,
134 ["Subtract.Double"] = SubtractDouble,
135 ["Subtract.Single"] = SubtractSingle,
136 ["Xor.Single"] = XorSingle,
137 ["Xor.Double"] = XorDouble,