@@ -1611,36 +1611,38 @@ define void @test_int_x86_avx512_mask_pmovus_wb_mem_128(i8* %ptr, <8 x i16> %x1,
1611
1611
ret void
1612
1612
}
1613
1613
1614
- declare <16 x i8 > @llvm.x86.avx512.mask.pmov.wb.256 (<16 x i16 >, <16 x i8 >, i16 )
1615
-
1616
1614
define <16 x i8 >@test_int_x86_avx512_mask_pmov_wb_256 (<16 x i16 > %x0 , <16 x i8 > %x1 , i16 %x2 ) {
1617
1615
; X86-LABEL: test_int_x86_avx512_mask_pmov_wb_256:
1618
1616
; X86: # %bb.0:
1617
+ ; X86-NEXT: vpmovwb %ymm0, %xmm2 # encoding: [0x62,0xf2,0x7e,0x28,0x30,0xc2]
1619
1618
; X86-NEXT: kmovw {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf8,0x90,0x4c,0x24,0x04]
1620
1619
; X86-NEXT: vpmovwb %ymm0, %xmm1 {%k1} # encoding: [0x62,0xf2,0x7e,0x29,0x30,0xc1]
1621
- ; X86-NEXT: vpmovwb %ymm0, %xmm2 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0xa9,0x30,0xc2]
1622
- ; X86-NEXT: vpaddb %xmm2, %xmm1, %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xf1,0xfc,0xca]
1623
- ; X86-NEXT: vpmovwb %ymm0, %xmm0 # encoding: [0x62,0xf2,0x7e,0x28,0x30,0xc0]
1624
- ; X86-NEXT: vpaddb %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0xfc,0xc1]
1620
+ ; X86-NEXT: vpmovwb %ymm0, %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0xa9,0x30,0xc0]
1621
+ ; X86-NEXT: vpaddb %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf1,0xfc,0xc0]
1622
+ ; X86-NEXT: vpaddb %xmm0, %xmm2, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xe9,0xfc,0xc0]
1625
1623
; X86-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1626
1624
; X86-NEXT: retl # encoding: [0xc3]
1627
1625
;
1628
1626
; X64-LABEL: test_int_x86_avx512_mask_pmov_wb_256:
1629
1627
; X64: # %bb.0:
1628
+ ; X64-NEXT: vpmovwb %ymm0, %xmm2 # encoding: [0x62,0xf2,0x7e,0x28,0x30,0xc2]
1630
1629
; X64-NEXT: kmovd %edi, %k1 # encoding: [0xc5,0xfb,0x92,0xcf]
1631
- ; X64-NEXT: vpmovwb %ymm0, %xmm2 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0xa9,0x30,0xc2]
1632
1630
; X64-NEXT: vpmovwb %ymm0, %xmm1 {%k1} # encoding: [0x62,0xf2,0x7e,0x29,0x30,0xc1]
1633
- ; X64-NEXT: vpaddb %xmm2 , %xmm1, %xmm1 # EVEX TO VEX Compression encoding: [0xc5,0xf1,0xfc,0xca ]
1634
- ; X64-NEXT: vpmovwb %ymm0 , %xmm0 # encoding: [0x62,0xf2,0x7e,0x28,0x30 ,0xc0]
1635
- ; X64-NEXT: vpaddb %xmm1 , %xmm0 , %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9 ,0xfc,0xc1 ]
1631
+ ; X64-NEXT: vpmovwb %ymm0 , %xmm0 {%k1} {z} # encoding: [0x62,0xf2,0x7e,0xa9,0x30,0xc0 ]
1632
+ ; X64-NEXT: vpaddb %xmm0 , %xmm1, % xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf1,0xfc ,0xc0]
1633
+ ; X64-NEXT: vpaddb %xmm0 , %xmm2 , %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xe9 ,0xfc,0xc0 ]
1636
1634
; X64-NEXT: vzeroupper # encoding: [0xc5,0xf8,0x77]
1637
1635
; X64-NEXT: retq # encoding: [0xc3]
1638
- %res0 = call <16 x i8 > @llvm.x86.avx512.mask.pmov.wb.256 (<16 x i16 > %x0 , <16 x i8 > %x1 , i16 -1 )
1639
- %res1 = call <16 x i8 > @llvm.x86.avx512.mask.pmov.wb.256 (<16 x i16 > %x0 , <16 x i8 > %x1 , i16 %x2 )
1640
- %res2 = call <16 x i8 > @llvm.x86.avx512.mask.pmov.wb.256 (<16 x i16 > %x0 , <16 x i8 > zeroinitializer , i16 %x2 )
1641
- %res3 = add <16 x i8 > %res0 , %res1
1642
- %res4 = add <16 x i8 > %res3 , %res2
1643
- ret <16 x i8 > %res4
1636
+ %1 = trunc <16 x i16 > %x0 to <16 x i8 >
1637
+ %2 = trunc <16 x i16 > %x0 to <16 x i8 >
1638
+ %3 = bitcast i16 %x2 to <16 x i1 >
1639
+ %4 = select <16 x i1 > %3 , <16 x i8 > %2 , <16 x i8 > %x1
1640
+ %5 = trunc <16 x i16 > %x0 to <16 x i8 >
1641
+ %6 = bitcast i16 %x2 to <16 x i1 >
1642
+ %7 = select <16 x i1 > %6 , <16 x i8 > %5 , <16 x i8 > zeroinitializer
1643
+ %res3 = add <16 x i8 > %1 , %4
1644
+ %res4 = add <16 x i8 > %res3 , %7
1645
+ ret <16 x i8 > %res4
1644
1646
}
1645
1647
1646
1648
declare void @llvm.x86.avx512.mask.pmov.wb.mem.256 (i8* %ptr , <16 x i16 >, i16 )
0 commit comments