11; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
22; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avxvnniint8 --show-mc-encoding | FileCheck %s --check-prefixes=X86
33; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avxvnniint8 --show-mc-encoding | FileCheck %s --check-prefixes=X64
4+ ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx10.2 --show-mc-encoding | FileCheck %s --check-prefixes=AVX10-X86
5+ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx10.2 --show-mc-encoding | FileCheck %s --check-prefixes=AVX10-X64
46
57declare <4 x i32 > @llvm.x86.avx2.vpdpbssd.128 (<4 x i32 >, <4 x i32 >, <4 x i32 >)
68
@@ -14,6 +16,16 @@ define <4 x i32>@test_int_x86_avx2_vpdpbssd_128(<4 x i32> %x0, <4 x i32> %x1, <4
1416; X64: # %bb.0:
1517; X64-NEXT: vpdpbssd %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x73,0x50,0xc2]
1618; X64-NEXT: retq # encoding: [0xc3]
19+ ;
20+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbssd_128:
21+ ; AVX10-X86: # %bb.0:
22+ ; AVX10-X86-NEXT: vpdpbssd %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x77,0x08,0x50,0xc2]
23+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
24+ ;
25+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbssd_128:
26+ ; AVX10-X64: # %bb.0:
27+ ; AVX10-X64-NEXT: vpdpbssd %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x77,0x08,0x50,0xc2]
28+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
1729 %res = call <4 x i32 > @llvm.x86.avx2.vpdpbssd.128 (<4 x i32 > %x0 , <4 x i32 > %x1 , <4 x i32 > %x2 )
1830 ret <4 x i32 > %res
1931}
@@ -30,6 +42,16 @@ define <4 x i32>@test_int_x86_avx2_vpdpbssds_128(<4 x i32> %x0, <4 x i32> %x1, <
3042; X64: # %bb.0:
3143; X64-NEXT: vpdpbssds %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x73,0x51,0xc2]
3244; X64-NEXT: retq # encoding: [0xc3]
45+ ;
46+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbssds_128:
47+ ; AVX10-X86: # %bb.0:
48+ ; AVX10-X86-NEXT: vpdpbssds %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x77,0x08,0x51,0xc2]
49+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
50+ ;
51+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbssds_128:
52+ ; AVX10-X64: # %bb.0:
53+ ; AVX10-X64-NEXT: vpdpbssds %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x77,0x08,0x51,0xc2]
54+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
3355 %res = call <4 x i32 > @llvm.x86.avx2.vpdpbssds.128 (<4 x i32 > %x0 , <4 x i32 > %x1 , <4 x i32 > %x2 )
3456 ret <4 x i32 > %res
3557}
@@ -46,6 +68,16 @@ define <8 x i32>@test_int_x86_avx2_vpdpbssd_256(<8 x i32> %x0, <8 x i32> %x1, <8
4668; X64: # %bb.0:
4769; X64-NEXT: vpdpbssd %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x77,0x50,0xc2]
4870; X64-NEXT: retq # encoding: [0xc3]
71+ ;
72+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbssd_256:
73+ ; AVX10-X86: # %bb.0:
74+ ; AVX10-X86-NEXT: vpdpbssd %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x77,0x28,0x50,0xc2]
75+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
76+ ;
77+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbssd_256:
78+ ; AVX10-X64: # %bb.0:
79+ ; AVX10-X64-NEXT: vpdpbssd %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x77,0x28,0x50,0xc2]
80+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
4981 %res = call <8 x i32 > @llvm.x86.avx2.vpdpbssd.256 (<8 x i32 > %x0 , <8 x i32 > %x1 , <8 x i32 > %x2 )
5082 ret <8 x i32 > %res
5183}
@@ -62,6 +94,16 @@ define <8 x i32>@test_int_x86_avx2_vpdpbssds_256(<8 x i32> %x0, <8 x i32> %x1, <
6294; X64: # %bb.0:
6395; X64-NEXT: vpdpbssds %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x77,0x51,0xc2]
6496; X64-NEXT: retq # encoding: [0xc3]
97+ ;
98+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbssds_256:
99+ ; AVX10-X86: # %bb.0:
100+ ; AVX10-X86-NEXT: vpdpbssds %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x77,0x28,0x51,0xc2]
101+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
102+ ;
103+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbssds_256:
104+ ; AVX10-X64: # %bb.0:
105+ ; AVX10-X64-NEXT: vpdpbssds %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x77,0x28,0x51,0xc2]
106+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
65107 %res = call <8 x i32 > @llvm.x86.avx2.vpdpbssds.256 (<8 x i32 > %x0 , <8 x i32 > %x1 , <8 x i32 > %x2 )
66108 ret <8 x i32 > %res
67109}
@@ -78,6 +120,16 @@ define <4 x i32>@test_int_x86_avx2_vpdpbsud_128(<4 x i32> %x0, <4 x i32> %x1, <4
78120; X64: # %bb.0:
79121; X64-NEXT: vpdpbsud %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x72,0x50,0xc2]
80122; X64-NEXT: retq # encoding: [0xc3]
123+ ;
124+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbsud_128:
125+ ; AVX10-X86: # %bb.0:
126+ ; AVX10-X86-NEXT: vpdpbsud %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x76,0x08,0x50,0xc2]
127+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
128+ ;
129+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbsud_128:
130+ ; AVX10-X64: # %bb.0:
131+ ; AVX10-X64-NEXT: vpdpbsud %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x76,0x08,0x50,0xc2]
132+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
81133 %res = call <4 x i32 > @llvm.x86.avx2.vpdpbsud.128 (<4 x i32 > %x0 , <4 x i32 > %x1 , <4 x i32 > %x2 )
82134 ret <4 x i32 > %res
83135}
@@ -94,6 +146,16 @@ define <4 x i32>@test_int_x86_avx2_vpdpbsuds_128(<4 x i32> %x0, <4 x i32> %x1, <
94146; X64: # %bb.0:
95147; X64-NEXT: vpdpbsuds %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x72,0x51,0xc2]
96148; X64-NEXT: retq # encoding: [0xc3]
149+ ;
150+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbsuds_128:
151+ ; AVX10-X86: # %bb.0:
152+ ; AVX10-X86-NEXT: vpdpbsuds %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x76,0x08,0x51,0xc2]
153+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
154+ ;
155+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbsuds_128:
156+ ; AVX10-X64: # %bb.0:
157+ ; AVX10-X64-NEXT: vpdpbsuds %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x76,0x08,0x51,0xc2]
158+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
97159 %res = call <4 x i32 > @llvm.x86.avx2.vpdpbsuds.128 (<4 x i32 > %x0 , <4 x i32 > %x1 , <4 x i32 > %x2 )
98160 ret <4 x i32 > %res
99161}
@@ -110,6 +172,16 @@ define <8 x i32>@test_int_x86_avx2_vpdpbsud_256(<8 x i32> %x0, <8 x i32> %x1, <8
110172; X64: # %bb.0:
111173; X64-NEXT: vpdpbsud %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x76,0x50,0xc2]
112174; X64-NEXT: retq # encoding: [0xc3]
175+ ;
176+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbsud_256:
177+ ; AVX10-X86: # %bb.0:
178+ ; AVX10-X86-NEXT: vpdpbsud %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x76,0x28,0x50,0xc2]
179+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
180+ ;
181+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbsud_256:
182+ ; AVX10-X64: # %bb.0:
183+ ; AVX10-X64-NEXT: vpdpbsud %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x76,0x28,0x50,0xc2]
184+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
113185 %res = call <8 x i32 > @llvm.x86.avx2.vpdpbsud.256 (<8 x i32 > %x0 , <8 x i32 > %x1 , <8 x i32 > %x2 )
114186 ret <8 x i32 > %res
115187}
@@ -126,6 +198,16 @@ define <8 x i32>@test_int_x86_avx2_vpdpbsuds_256(<8 x i32> %x0, <8 x i32> %x1, <
126198; X64: # %bb.0:
127199; X64-NEXT: vpdpbsuds %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x76,0x51,0xc2]
128200; X64-NEXT: retq # encoding: [0xc3]
201+ ;
202+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbsuds_256:
203+ ; AVX10-X86: # %bb.0:
204+ ; AVX10-X86-NEXT: vpdpbsuds %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x76,0x28,0x51,0xc2]
205+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
206+ ;
207+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbsuds_256:
208+ ; AVX10-X64: # %bb.0:
209+ ; AVX10-X64-NEXT: vpdpbsuds %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x76,0x28,0x51,0xc2]
210+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
129211 %res = call <8 x i32 > @llvm.x86.avx2.vpdpbsuds.256 (<8 x i32 > %x0 , <8 x i32 > %x1 , <8 x i32 > %x2 )
130212 ret <8 x i32 > %res
131213}
@@ -142,6 +224,16 @@ define <4 x i32>@test_int_x86_avx2_vpdpbuud(<4 x i32> %x0, <4 x i32> %x1, <4 x i
142224; X64: # %bb.0:
143225; X64-NEXT: vpdpbuud %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x70,0x50,0xc2]
144226; X64-NEXT: retq # encoding: [0xc3]
227+ ;
228+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbuud:
229+ ; AVX10-X86: # %bb.0:
230+ ; AVX10-X86-NEXT: vpdpbuud %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x74,0x08,0x50,0xc2]
231+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
232+ ;
233+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbuud:
234+ ; AVX10-X64: # %bb.0:
235+ ; AVX10-X64-NEXT: vpdpbuud %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x74,0x08,0x50,0xc2]
236+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
145237 %res = call <4 x i32 > @llvm.x86.avx2.vpdpbuud.128 (<4 x i32 > %x0 , <4 x i32 > %x1 , <4 x i32 > %x2 )
146238 ret <4 x i32 > %res
147239}
@@ -158,6 +250,16 @@ define <4 x i32>@test_int_x86_avx2_vpdpbuuds_128(<4 x i32> %x0, <4 x i32> %x1, <
158250; X64: # %bb.0:
159251; X64-NEXT: vpdpbuuds %xmm2, %xmm1, %xmm0 # encoding: [0xc4,0xe2,0x70,0x51,0xc2]
160252; X64-NEXT: retq # encoding: [0xc3]
253+ ;
254+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbuuds_128:
255+ ; AVX10-X86: # %bb.0:
256+ ; AVX10-X86-NEXT: vpdpbuuds %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x74,0x08,0x51,0xc2]
257+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
258+ ;
259+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbuuds_128:
260+ ; AVX10-X64: # %bb.0:
261+ ; AVX10-X64-NEXT: vpdpbuuds %xmm2, %xmm1, %xmm0 # encoding: [0x62,0xf2,0x74,0x08,0x51,0xc2]
262+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
161263 %res = call <4 x i32 > @llvm.x86.avx2.vpdpbuuds.128 (<4 x i32 > %x0 , <4 x i32 > %x1 , <4 x i32 > %x2 )
162264 ret <4 x i32 > %res
163265}
@@ -174,6 +276,16 @@ define <8 x i32>@test_int_x86_avx2_vpdpbuud_256(<8 x i32> %x0, <8 x i32> %x1, <8
174276; X64: # %bb.0:
175277; X64-NEXT: vpdpbuud %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x74,0x50,0xc2]
176278; X64-NEXT: retq # encoding: [0xc3]
279+ ;
280+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbuud_256:
281+ ; AVX10-X86: # %bb.0:
282+ ; AVX10-X86-NEXT: vpdpbuud %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x74,0x28,0x50,0xc2]
283+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
284+ ;
285+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbuud_256:
286+ ; AVX10-X64: # %bb.0:
287+ ; AVX10-X64-NEXT: vpdpbuud %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x74,0x28,0x50,0xc2]
288+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
177289 %res = call <8 x i32 > @llvm.x86.avx2.vpdpbuud.256 (<8 x i32 > %x0 , <8 x i32 > %x1 , <8 x i32 > %x2 )
178290 ret <8 x i32 > %res
179291}
@@ -190,6 +302,16 @@ define <8 x i32>@test_int_x86_avx2_vpdpbuuds_256(<8 x i32> %x0, <8 x i32> %x1, <
190302; X64: # %bb.0:
191303; X64-NEXT: vpdpbuuds %ymm2, %ymm1, %ymm0 # encoding: [0xc4,0xe2,0x74,0x51,0xc2]
192304; X64-NEXT: retq # encoding: [0xc3]
305+ ;
306+ ; AVX10-X86-LABEL: test_int_x86_avx2_vpdpbuuds_256:
307+ ; AVX10-X86: # %bb.0:
308+ ; AVX10-X86-NEXT: vpdpbuuds %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x74,0x28,0x51,0xc2]
309+ ; AVX10-X86-NEXT: retl # encoding: [0xc3]
310+ ;
311+ ; AVX10-X64-LABEL: test_int_x86_avx2_vpdpbuuds_256:
312+ ; AVX10-X64: # %bb.0:
313+ ; AVX10-X64-NEXT: vpdpbuuds %ymm2, %ymm1, %ymm0 # encoding: [0x62,0xf2,0x74,0x28,0x51,0xc2]
314+ ; AVX10-X64-NEXT: retq # encoding: [0xc3]
193315 %res = call <8 x i32 > @llvm.x86.avx2.vpdpbuuds.256 (<8 x i32 > %x0 , <8 x i32 > %x1 , <8 x i32 > %x2 )
194316 ret <8 x i32 > %res
195317}
0 commit comments