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 ["ExtendToVector256.Byte"] = ExtendToVector256Byte,
51 ["ExtendToVector256.Double"] = ExtendToVector256Double,
52 ["ExtendToVector256.Int16"] = ExtendToVector256Int16,
53 ["ExtendToVector256.Int32"] = ExtendToVector256Int32,
54 ["ExtendToVector256.Int64"] = ExtendToVector256Int64,
55 ["ExtendToVector256.SByte"] = ExtendToVector256SByte,
56 ["ExtendToVector256.Single"] = ExtendToVector256Single,
57 ["ExtendToVector256.UInt16"] = ExtendToVector256UInt16,
58 ["ExtendToVector256.UInt32"] = ExtendToVector256UInt32,
59 ["ExtendToVector256.UInt64"] = ExtendToVector256UInt64,
60 ["ExtractVector128.Byte.1.Store"] = ExtractVector128Byte1Store,
61 ["ExtractVector128.SByte.1.Store"] = ExtractVector128SByte1Store,
62 ["ExtractVector128.Int16.1.Store"] = ExtractVector128Int161Store,
63 ["ExtractVector128.UInt16.1.Store"] = ExtractVector128UInt161Store,
64 ["ExtractVector128.Int32.1.Store"] = ExtractVector128Int321Store,
65 ["ExtractVector128.UInt32.1.Store"] = ExtractVector128UInt321Store,
66 ["ExtractVector128.Int64.1.Store"] = ExtractVector128Int641Store,
67 ["ExtractVector128.UInt64.1.Store"] = ExtractVector128UInt641Store,
68 ["ExtractVector128.Single.1.Store"] = ExtractVector128Single1Store,
69 ["ExtractVector128.Double.1.Store"] = ExtractVector128Double1Store,
70 ["Insert.Byte.1"] = InsertByte1,
71 ["Insert.Byte.20"] = InsertByte20,
72 ["Insert.SByte.1"] = InsertSByte1,
73 ["Insert.SByte.20"] = InsertSByte20,
74 ["Insert.Byte.52"] = InsertByte52,
75 ["Insert.SByte.52"] = InsertSByte52,
76 ["Insert.Int16.1"] = InsertInt161,
77 ["Insert.Int16.11"] = InsertInt1611,
78 ["Insert.UInt16.1"] = InsertUInt161,
79 ["Insert.UInt16.11"] = InsertUInt1611,
80 ["Insert.Int16.27"] = InsertInt1627,
81 ["Insert.UInt16.27"] = InsertUInt1627,
82 ["Insert.Int32.1"] = InsertInt321,
83 ["Insert.Int32.6"] = InsertInt326,
84 ["Insert.UInt32.1"] = InsertUInt321,
85 ["Insert.UInt32.6"] = InsertUInt326,
86 ["Insert.Int32.22"] = InsertInt3222,
87 ["Insert.UInt32.22"] = InsertUInt3222,
88 ["Insert.Int64.1"] = InsertInt641,
89 ["Insert.Int64.3"] = InsertInt643,
90 ["Insert.UInt64.1"] = InsertUInt641,
91 ["Insert.UInt64.3"] = InsertUInt643,
92 ["Insert.Int64.19"] = InsertInt6419,
93 ["Insert.UInt64.19"] = InsertUInt6419,
94 ["InsertVector128.Byte.1.Load"] = InsertVector128Byte1Load,
95 ["InsertVector128.SByte.1.Load"] = InsertVector128SByte1Load,
96 ["InsertVector128.Int16.1.Load"] = InsertVector128Int161Load,
97 ["InsertVector128.UInt16.1.Load"] = InsertVector128UInt161Load,
98 ["InsertVector128.Int32.1.Load"] = InsertVector128Int321Load,
99 ["InsertVector128.UInt32.1.Load"] = InsertVector128UInt321Load,
100 ["InsertVector128.Int64.1.Load"] = InsertVector128Int641Load,
101 ["InsertVector128.UInt64.1.Load"] = InsertVector128UInt641Load,
102 ["InsertVector128.Single.1.Load"] = InsertVector128Single1Load,
103 ["InsertVector128.Double.1.Load"] = InsertVector128Double1Load,
104 ["Floor.Double"] = FloorDouble,
105 ["Floor.Single"] = FloorSingle,
106 ["GetLowerHalf.Byte"] = GetLowerHalfByte,
107 ["GetLowerHalf.Double"] = GetLowerHalfDouble,
108 ["GetLowerHalf.Int16"] = GetLowerHalfInt16,
109 ["GetLowerHalf.Int32"] = GetLowerHalfInt32,
110 ["GetLowerHalf.Int64"] = GetLowerHalfInt64,
111 ["GetLowerHalf.SByte"] = GetLowerHalfSByte,
112 ["GetLowerHalf.Single"] = GetLowerHalfSingle,
113 ["GetLowerHalf.UInt16"] = GetLowerHalfUInt16,
114 ["GetLowerHalf.UInt32"] = GetLowerHalfUInt32,
115 ["GetLowerHalf.UInt64"] = GetLowerHalfUInt64,
116 ["MaskLoad.Double"] = MaskLoadDouble,
117 ["MaskLoad.Single"] = MaskLoadSingle,
118 ["MaskStore.Double"] = MaskStoreDouble,
119 ["MaskStore.Single"] = MaskStoreSingle,
120 ["Max.Double"] = MaxDouble,
121 ["Max.Single"] = MaxSingle,
122 ["Min.Double"] = MinDouble,
123 ["Min.Single"] = MinSingle,
124 ["Multiply.Double"] = MultiplyDouble,
125 ["Multiply.Single"] = MultiplySingle,
126 ["Or.Double"] = OrDouble,
127 ["Or.Single"] = OrSingle,
128 ["Permute.Single.1"] = PermuteSingle1,
129 ["Permute.Double.1"] = PermuteDouble1,
130 ["Permute.Single.2"] = PermuteSingle2,
131 ["Permute.Double.2"] = PermuteDouble2,
132 ["RoundCurrentDirection.Double"] = RoundCurrentDirectionDouble,
133 ["RoundCurrentDirection.Single"] = RoundCurrentDirectionSingle,
134 ["RoundToNearestInteger.Double"] = RoundToNearestIntegerDouble,
135 ["RoundToNearestInteger.Single"] = RoundToNearestIntegerSingle,
136 ["RoundToNegativeInfinity.Double"] = RoundToNegativeInfinityDouble,
137 ["RoundToNegativeInfinity.Single"] = RoundToNegativeInfinitySingle,
138 ["RoundToPositiveInfinity.Double"] = RoundToPositiveInfinityDouble,
139 ["RoundToPositiveInfinity.Single"] = RoundToPositiveInfinitySingle,
140 ["RoundToZero.Double"] = RoundToZeroDouble,
141 ["RoundToZero.Single"] = RoundToZeroSingle,
142 ["Shuffle.Single.1"] = ShuffleSingle1,
143 ["Shuffle.Double.1"] = ShuffleDouble1,
144 ["Subtract.Double"] = SubtractDouble,
145 ["Subtract.Single"] = SubtractSingle,
146 ["TestC.Byte"] = TestCByte,
147 ["TestC.Int16"] = TestCInt16,
148 ["TestC.Int32"] = TestCInt32,
149 ["TestC.Int64"] = TestCInt64,
150 ["TestC.SByte"] = TestCSByte,
151 ["TestC.UInt16"] = TestCUInt16,
152 ["TestC.UInt32"] = TestCUInt32,
153 ["TestC.UInt64"] = TestCUInt64,
154 ["TestNotZAndNotC.Byte"] = TestNotZAndNotCByte,
155 ["TestNotZAndNotC.Int16"] = TestNotZAndNotCInt16,
156 ["TestNotZAndNotC.Int32"] = TestNotZAndNotCInt32,
157 ["TestNotZAndNotC.Int64"] = TestNotZAndNotCInt64,
158 ["TestNotZAndNotC.SByte"] = TestNotZAndNotCSByte,
159 ["TestNotZAndNotC.UInt16"] = TestNotZAndNotCUInt16,
160 ["TestNotZAndNotC.UInt32"] = TestNotZAndNotCUInt32,
161 ["TestNotZAndNotC.UInt64"] = TestNotZAndNotCUInt64,
162 ["TestZ.Byte"] = TestZByte,
163 ["TestZ.Int16"] = TestZInt16,
164 ["TestZ.Int32"] = TestZInt32,
165 ["TestZ.Int64"] = TestZInt64,
166 ["TestZ.SByte"] = TestZSByte,
167 ["TestZ.UInt16"] = TestZUInt16,
168 ["TestZ.UInt32"] = TestZUInt32,
169 ["TestZ.UInt64"] = TestZUInt64,
170 ["Xor.Single"] = XorSingle,
171 ["Xor.Double"] = XorDouble,