22; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512vnni --show-mc-encoding | FileCheck %s --check-prefixes=CHECK,X86
33; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vnni --show-mc-encoding | FileCheck %s --check-prefixes=CHECK,X64
44
5- declare <16 x i32 > @llvm.x86.avx512.mask.vpdpbusd.512 (<16 x i32 >, <16 x i32 >, <16 x i32 >, i16 )
6- declare <16 x i32 > @llvm.x86.avx512.maskz.vpdpbusd.512 (<16 x i32 >, <16 x i32 >, <16 x i32 >, i16 )
5+ declare <16 x i32 > @llvm.x86.avx512.vpdpbusd.512 (<16 x i32 >, <16 x i32 >, <16 x i32 >, i16 )
76
87define <16 x i32 >@test_int_x86_avx512_vpdpbusd_512 (<16 x i32 > %x0 , <16 x i32 > %x1 , <16 x i32 > %x2 ) {
98; CHECK-LABEL: test_int_x86_avx512_vpdpbusd_512:
109; CHECK: # %bb.0:
1110; CHECK-NEXT: vpdpbusd %zmm2, %zmm1, %zmm0 # encoding: [0x62,0xf2,0x75,0x48,0x50,0xc2]
11+ ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
12+ %res = call <16 x i32 > @llvm.x86.avx512.vpdpbusd.512 (<16 x i32 > %x0 , <16 x i32 > %x1 , <16 x i32 > %x2 )
13+ ret <16 x i32 > %res
14+ }
15+
16+ declare <16 x i32 > @llvm.x86.avx512.mask.vpdpbusd.512 (<16 x i32 >, <16 x i32 >, <16 x i32 >, i16 )
17+ declare <16 x i32 > @llvm.x86.avx512.maskz.vpdpbusd.512 (<16 x i32 >, <16 x i32 >, <16 x i32 >, i16 )
18+
19+ define <16 x i32 >@test_int_x86_avx512_mask_vpdpbusd_512 (<16 x i32 > %x0 , <16 x i32 > %x1 , <16 x i32 > %x2 ) {
20+ ; CHECK-LABEL: test_int_x86_avx512_mask_vpdpbusd_512:
21+ ; CHECK: # %bb.0:
22+ ; CHECK-NEXT: vpdpbusd %zmm2, %zmm1, %zmm0 # encoding: [0x62,0xf2,0x75,0x48,0x50,0xc2]
1223; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
1324 %res = call <16 x i32 > @llvm.x86.avx512.mask.vpdpbusd.512 (<16 x i32 > %x0 , <16 x i32 > %x1 , <16 x i32 > %x2 , i16 -1 )
1425 ret <16 x i32 > %res
1526}
1627
17- define { <16 x i32 >, <16 x i32 > } @test_int_x86_avx512_mask_vpdpbusd_512 (<16 x i32 > %x0 , <16 x i32 > %x1 , ptr %x2p , <16 x i32 > %x4 , i16 %x3 ) {
18- ; X86-LABEL: test_int_x86_avx512_mask_vpdpbusd_512 :
28+ define { <16 x i32 >, <16 x i32 > } @test_int_x86_avx512_maskz_vpdpbusd_512 (<16 x i32 > %x0 , <16 x i32 > %x1 , ptr %x2p , <16 x i32 > %x4 , i16 %x3 ) {
29+ ; X86-LABEL: test_int_x86_avx512_maskz_vpdpbusd_512 :
1930; X86: # %bb.0:
2031; X86-NEXT: vmovdqa64 %zmm0, %zmm3 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0xd8]
2132; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
@@ -25,7 +36,7 @@ define { <16 x i32>, <16 x i32> } @test_int_x86_avx512_mask_vpdpbusd_512(<16 x i
2536; X86-NEXT: vmovdqa64 %zmm3, %zmm1 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0xcb]
2637; X86-NEXT: retl # encoding: [0xc3]
2738;
28- ; X64-LABEL: test_int_x86_avx512_mask_vpdpbusd_512 :
39+ ; X64-LABEL: test_int_x86_avx512_maskz_vpdpbusd_512 :
2940; X64: # %bb.0:
3041; X64-NEXT: vmovdqa64 %zmm0, %zmm3 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0xd8]
3142; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
@@ -41,20 +52,31 @@ define { <16 x i32>, <16 x i32> } @test_int_x86_avx512_mask_vpdpbusd_512(<16 x i
4152 ret { <16 x i32 >, <16 x i32 > } %res3
4253}
4354
44- declare <16 x i32 > @llvm.x86.avx512.mask.vpdpbusds.512 (<16 x i32 >, <16 x i32 >, <16 x i32 >, i16 )
45- declare <16 x i32 > @llvm.x86.avx512.maskz.vpdpbusds.512 (<16 x i32 >, <16 x i32 >, <16 x i32 >, i16 )
55+ declare <16 x i32 > @llvm.x86.avx512.vpdpbusds.512 (<16 x i32 >, <16 x i32 >, <16 x i32 >, i16 )
4656
4757define <16 x i32 >@test_int_x86_avx512_vpdpbusds_512 (<16 x i32 > %x0 , <16 x i32 > %x1 , <16 x i32 > %x2 ) {
4858; CHECK-LABEL: test_int_x86_avx512_vpdpbusds_512:
4959; CHECK: # %bb.0:
5060; CHECK-NEXT: vpdpbusds %zmm2, %zmm1, %zmm0 # encoding: [0x62,0xf2,0x75,0x48,0x51,0xc2]
61+ ; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
62+ %res = call <16 x i32 > @llvm.x86.avx512.vpdpbusds.512 (<16 x i32 > %x0 , <16 x i32 > %x1 , <16 x i32 > %x2 )
63+ ret <16 x i32 > %res
64+ }
65+
66+ declare <16 x i32 > @llvm.x86.avx512.mask.vpdpbusds.512 (<16 x i32 >, <16 x i32 >, <16 x i32 >, i16 )
67+ declare <16 x i32 > @llvm.x86.avx512.maskz.vpdpbusds.512 (<16 x i32 >, <16 x i32 >, <16 x i32 >, i16 )
68+
69+ define <16 x i32 >@test_int_x86_avx512_mask_vpdpbusds_512 (<16 x i32 > %x0 , <16 x i32 > %x1 , <16 x i32 > %x2 ) {
70+ ; CHECK-LABEL: test_int_x86_avx512_mask_vpdpbusds_512:
71+ ; CHECK: # %bb.0:
72+ ; CHECK-NEXT: vpdpbusds %zmm2, %zmm1, %zmm0 # encoding: [0x62,0xf2,0x75,0x48,0x51,0xc2]
5173; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
5274 %res = call <16 x i32 > @llvm.x86.avx512.mask.vpdpbusds.512 (<16 x i32 > %x0 , <16 x i32 > %x1 , <16 x i32 > %x2 , i16 -1 )
5375 ret <16 x i32 > %res
5476}
5577
56- define { <16 x i32 >, <16 x i32 > } @test_int_x86_avx512_mask_vpdpbusds_512 (<16 x i32 > %x0 , <16 x i32 > %x1 , ptr %x2p , <16 x i32 > %x4 , i16 %x3 ) {
57- ; X86-LABEL: test_int_x86_avx512_mask_vpdpbusds_512 :
78+ define { <16 x i32 >, <16 x i32 > } @test_int_x86_avx512_maskz_vpdpbusds_512 (<16 x i32 > %x0 , <16 x i32 > %x1 , ptr %x2p , <16 x i32 > %x4 , i16 %x3 ) {
79+ ; X86-LABEL: test_int_x86_avx512_maskz_vpdpbusds_512 :
5880; X86: # %bb.0:
5981; X86-NEXT: vmovdqa64 %zmm0, %zmm3 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0xd8]
6082; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x04]
@@ -64,7 +86,7 @@ define { <16 x i32>, <16 x i32> } @test_int_x86_avx512_mask_vpdpbusds_512(<16 x
6486; X86-NEXT: vmovdqa64 %zmm3, %zmm1 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0xcb]
6587; X86-NEXT: retl # encoding: [0xc3]
6688;
67- ; X64-LABEL: test_int_x86_avx512_mask_vpdpbusds_512 :
89+ ; X64-LABEL: test_int_x86_avx512_maskz_vpdpbusds_512 :
6890; X64: # %bb.0:
6991; X64-NEXT: vmovdqa64 %zmm0, %zmm3 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0xd8]
7092; X64-NEXT: kmovw %esi, %k1 # encoding: [0xc5,0xf8,0x92,0xce]
0 commit comments