a0e07b776f46c9a033dfed64976bff909bdd3fca
[platform/upstream/coreclr.git] / tests / src / JIT / HardwareIntrinsics / X86 / Avx / Program.Avx.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.Collections.Generic;
7
8 namespace JIT.HardwareIntrinsics.X86
9 {
10     public static partial class Program
11     {
12         static Program()
13         {
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,
172             };
173         }
174     }
175 }