================
@@ -0,0 +1,267 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -verify-machineinstrs -mtriple=x86_64-unknown-unknown 
--show-mc-encoding -mattr=+avx10v2aux | FileCheck %s --check-prefixes=CHECK,X64
+; RUN: llc < %s -verify-machineinstrs -mtriple=i686-unknown-unknown 
--show-mc-encoding -mattr=+avx10v2aux | FileCheck %s --check-prefixes=CHECK,X86
+
+define <16 x i8> @test_int_x86_avx10_pmovssdb_128(<4 x i32> %a) {
+; CHECK-LABEL: test_int_x86_avx10_pmovssdb_128:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    vpmovssdb %xmm0, %xmm0 # encoding: 
[0x62,0xf2,0x7e,0x08,0x41,0xc0]
+; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]
+  %ret = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.128(<4 x i32> %a, <16 x 
i8> zeroinitializer, i8 -1)
+  ret <16 x i8> %ret
+}
+
+define <16 x i8> @test_int_x86_avx10_pmovssdb_256(<8 x i32> %a) {
+; CHECK-LABEL: test_int_x86_avx10_pmovssdb_256:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    vpmovssdb %ymm0, %xmm0 # encoding: 
[0x62,0xf2,0x7e,0x28,0x41,0xc0]
+; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]
+; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]
+  %ret = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.256(<8 x i32> %a, <16 x 
i8> zeroinitializer, i8 -1)
+  ret <16 x i8> %ret
+}
+
+define <16 x i8> @test_int_x86_avx10_pmovssdb_512(<16 x i32> %a) {
+; CHECK-LABEL: test_int_x86_avx10_pmovssdb_512:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    vpmovssdb %zmm0, %xmm0 # encoding: 
[0x62,0xf2,0x7e,0x48,0x41,0xc0]
+; CHECK-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]
+; CHECK-NEXT:    ret{{[l|q]}} # encoding: [0xc3]
+  %ret = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.512(<16 x i32> %a, <16 
x i8> zeroinitializer, i16 -1)
+  ret <16 x i8> %ret
+}
+
+declare <16 x i8> @llvm.x86.avx10.mask.pmovss.db.128(<4 x i32>, <16 x i8>, i8)
+declare <16 x i8> @llvm.x86.avx10.mask.pmovss.db.256(<8 x i32>, <16 x i8>, i8)
+declare <16 x i8> @llvm.x86.avx10.mask.pmovss.db.512(<16 x i32>, <16 x i8>, 
i16)
+declare void @llvm.x86.avx10.mask.pmovss.db.mem.128(ptr, <4 x i32>, i8)
+declare void @llvm.x86.avx10.mask.pmovss.db.mem.256(ptr, <8 x i32>, i8)
+declare void @llvm.x86.avx10.mask.pmovss.db.mem.512(ptr, <16 x i32>, i16)
+
+define <16 x i8> @test_int_x86_avx10_mask_pmovssdb_128(<4 x i32> %a, <16 x i8> 
%passthru, i8 %mask) {
+; X64-LABEL: test_int_x86_avx10_mask_pmovssdb_128:
+; X64:       # %bb.0:
+; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
+; X64-NEXT:    vpmovssdb %xmm0, %xmm2 # encoding: 
[0x62,0xf2,0x7e,0x08,0x41,0xc2]
+; X64-NEXT:    vpmovssdb %xmm0, %xmm1 {%k1} # encoding: 
[0x62,0xf2,0x7e,0x09,0x41,0xc1]
+; X64-NEXT:    vpaddb %xmm1, %xmm2, %xmm1 # EVEX TO VEX Compression encoding: 
[0xc5,0xe9,0xfc,0xc9]
+; X64-NEXT:    vpmovssdb %xmm0, %xmm0 {%k1} {z} # encoding: 
[0x62,0xf2,0x7e,0x89,0x41,0xc0]
+; X64-NEXT:    vpaddb %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xf1,0xfc,0xc0]
+; X64-NEXT:    retq # encoding: [0xc3]
+;
+; X86-LABEL: test_int_x86_avx10_mask_pmovssdb_128:
+; X86:       # %bb.0:
+; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: 
[0xc5,0xf9,0x90,0x4c,0x24,0x04]
+; X86-NEXT:    vpmovssdb %xmm0, %xmm2 # encoding: 
[0x62,0xf2,0x7e,0x08,0x41,0xc2]
+; X86-NEXT:    vpmovssdb %xmm0, %xmm1 {%k1} # encoding: 
[0x62,0xf2,0x7e,0x09,0x41,0xc1]
+; X86-NEXT:    vpaddb %xmm1, %xmm2, %xmm1 # EVEX TO VEX Compression encoding: 
[0xc5,0xe9,0xfc,0xc9]
+; X86-NEXT:    vpmovssdb %xmm0, %xmm0 {%k1} {z} # encoding: 
[0x62,0xf2,0x7e,0x89,0x41,0xc0]
+; X86-NEXT:    vpaddb %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xf1,0xfc,0xc0]
+; X86-NEXT:    retl # encoding: [0xc3]
+  %res0 = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.128(<4 x i32> %a, <16 
x i8> %passthru, i8 -1)
+  %res1 = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.128(<4 x i32> %a, <16 
x i8> %passthru, i8 %mask)
+  %res2 = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.128(<4 x i32> %a, <16 
x i8> zeroinitializer, i8 %mask)
+  %add1 = add <16 x i8> %res0, %res1
+  %add2 = add <16 x i8> %add1, %res2
+  ret <16 x i8> %add2
+}
+
+define <16 x i8> @test_int_x86_avx10_mask_pmovssdb_256(<8 x i32> %a, <16 x i8> 
%passthru, i8 %mask) {
+; X64-LABEL: test_int_x86_avx10_mask_pmovssdb_256:
+; X64:       # %bb.0:
+; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
+; X64-NEXT:    vpmovssdb %ymm0, %xmm2 # encoding: 
[0x62,0xf2,0x7e,0x28,0x41,0xc2]
+; X64-NEXT:    vpmovssdb %ymm0, %xmm1 {%k1} # encoding: 
[0x62,0xf2,0x7e,0x29,0x41,0xc1]
+; X64-NEXT:    vpaddb %xmm1, %xmm2, %xmm1 # EVEX TO VEX Compression encoding: 
[0xc5,0xe9,0xfc,0xc9]
+; X64-NEXT:    vpmovssdb %ymm0, %xmm0 {%k1} {z} # encoding: 
[0x62,0xf2,0x7e,0xa9,0x41,0xc0]
+; X64-NEXT:    vpaddb %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xf1,0xfc,0xc0]
+; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]
+; X64-NEXT:    retq # encoding: [0xc3]
+;
+; X86-LABEL: test_int_x86_avx10_mask_pmovssdb_256:
+; X86:       # %bb.0:
+; X86-NEXT:    kmovb {{[0-9]+}}(%esp), %k1 # encoding: 
[0xc5,0xf9,0x90,0x4c,0x24,0x04]
+; X86-NEXT:    vpmovssdb %ymm0, %xmm2 # encoding: 
[0x62,0xf2,0x7e,0x28,0x41,0xc2]
+; X86-NEXT:    vpmovssdb %ymm0, %xmm1 {%k1} # encoding: 
[0x62,0xf2,0x7e,0x29,0x41,0xc1]
+; X86-NEXT:    vpaddb %xmm1, %xmm2, %xmm1 # EVEX TO VEX Compression encoding: 
[0xc5,0xe9,0xfc,0xc9]
+; X86-NEXT:    vpmovssdb %ymm0, %xmm0 {%k1} {z} # encoding: 
[0x62,0xf2,0x7e,0xa9,0x41,0xc0]
+; X86-NEXT:    vpaddb %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xf1,0xfc,0xc0]
+; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]
+; X86-NEXT:    retl # encoding: [0xc3]
+  %res0 = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.256(<8 x i32> %a, <16 
x i8> %passthru, i8 -1)
+  %res1 = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.256(<8 x i32> %a, <16 
x i8> %passthru, i8 %mask)
+  %res2 = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.256(<8 x i32> %a, <16 
x i8> zeroinitializer, i8 %mask)
+  %add1 = add <16 x i8> %res0, %res1
+  %add2 = add <16 x i8> %add1, %res2
+  ret <16 x i8> %add2
+}
+
+define <16 x i8> @test_int_x86_avx10_mask_pmovssdb_512(<16 x i32> %a, <16 x 
i8> %passthru, i16 %mask) {
+; X64-LABEL: test_int_x86_avx10_mask_pmovssdb_512:
+; X64:       # %bb.0:
+; X64-NEXT:    kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
+; X64-NEXT:    vpmovssdb %zmm0, %xmm2 # encoding: 
[0x62,0xf2,0x7e,0x48,0x41,0xc2]
+; X64-NEXT:    vpmovssdb %zmm0, %xmm1 {%k1} # encoding: 
[0x62,0xf2,0x7e,0x49,0x41,0xc1]
+; X64-NEXT:    vpaddb %xmm1, %xmm2, %xmm1 # EVEX TO VEX Compression encoding: 
[0xc5,0xe9,0xfc,0xc9]
+; X64-NEXT:    vpmovssdb %zmm0, %xmm0 {%k1} {z} # encoding: 
[0x62,0xf2,0x7e,0xc9,0x41,0xc0]
+; X64-NEXT:    vpaddb %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xf1,0xfc,0xc0]
+; X64-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]
+; X64-NEXT:    retq # encoding: [0xc3]
+;
+; X86-LABEL: test_int_x86_avx10_mask_pmovssdb_512:
+; X86:       # %bb.0:
+; X86-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 # encoding: 
[0xc5,0xf8,0x90,0x4c,0x24,0x04]
+; X86-NEXT:    vpmovssdb %zmm0, %xmm2 # encoding: 
[0x62,0xf2,0x7e,0x48,0x41,0xc2]
+; X86-NEXT:    vpmovssdb %zmm0, %xmm1 {%k1} # encoding: 
[0x62,0xf2,0x7e,0x49,0x41,0xc1]
+; X86-NEXT:    vpaddb %xmm1, %xmm2, %xmm1 # EVEX TO VEX Compression encoding: 
[0xc5,0xe9,0xfc,0xc9]
+; X86-NEXT:    vpmovssdb %zmm0, %xmm0 {%k1} {z} # encoding: 
[0x62,0xf2,0x7e,0xc9,0x41,0xc0]
+; X86-NEXT:    vpaddb %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: 
[0xc5,0xf1,0xfc,0xc0]
+; X86-NEXT:    vzeroupper # encoding: [0xc5,0xf8,0x77]
+; X86-NEXT:    retl # encoding: [0xc3]
+  %res0 = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.512(<16 x i32> %a, <16 
x i8> %passthru, i16 -1)
+  %res1 = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.512(<16 x i32> %a, <16 
x i8> %passthru, i16 %mask)
+  %res2 = call <16 x i8> @llvm.x86.avx10.mask.pmovss.db.512(<16 x i32> %a, <16 
x i8> zeroinitializer, i16 %mask)
+  %add1 = add <16 x i8> %res0, %res1
+  %add2 = add <16 x i8> %add1, %res2
+  ret <16 x i8> %add2
+}
+
+define <16 x i8> @test_int_x86_avx10_pmovssdb_mem_128(ptr %ptr_a) {
----------------
ganeshgit wrote:

They are negative tests. Added a line comment. 

https://github.com/llvm/llvm-project/pull/206888
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to