Lines Matching refs:SKX
3 …pple-darwin -mattr=+avx512f,+avx512bw,+avx512vl,+avx512dq | FileCheck --check-prefixes=CHECK,SKX %s
4 …-mattr=+avx512f,+avx512bw,+avx512vl,+avx512dq,+avx512vbmi | FileCheck --check-prefixes=CHECK,SKX %s
171 ; SKX-LABEL: test11:
172 ; SKX: ## %bb.0:
173 ; SKX-NEXT: vpcmpltud %zmm1, %zmm0, %k0
174 ; SKX-NEXT: kshiftrw $4, %k0, %k0
175 ; SKX-NEXT: kmovd %k0, %eax
176 ; SKX-NEXT: testb $1, %al
177 ; SKX-NEXT: je LBB10_2
178 ; SKX-NEXT: ## %bb.1: ## %A
179 ; SKX-NEXT: vmovdqa64 %zmm1, %zmm0
180 ; SKX-NEXT: retq
181 ; SKX-NEXT: LBB10_2: ## %B
182 ; SKX-NEXT: vpaddd %zmm0, %zmm1, %zmm0
183 ; SKX-NEXT: retq
205 ; SKX-LABEL: test12:
206 ; SKX: ## %bb.0:
207 ; SKX-NEXT: movq %rdi, %rax
208 ; SKX-NEXT: vpcmpgtq %zmm0, %zmm2, %k0
209 ; SKX-NEXT: kmovd %k0, %ecx
210 ; SKX-NEXT: testb $1, %cl
211 ; SKX-NEXT: cmoveq %rsi, %rax
212 ; SKX-NEXT: vzeroupper
213 ; SKX-NEXT: retq
236 ; SKX-LABEL: test13:
237 ; SKX: ## %bb.0:
238 ; SKX-NEXT: cmpl %esi, %edi
239 ; SKX-NEXT: setb %al
240 ; SKX-NEXT: movw $-4, %cx
241 ; SKX-NEXT: kmovd %ecx, %k0
242 ; SKX-NEXT: kshiftrw $1, %k0, %k0
243 ; SKX-NEXT: kshiftlw $1, %k0, %k0
244 ; SKX-NEXT: andl $1, %eax
245 ; SKX-NEXT: kmovw %eax, %k1
246 ; SKX-NEXT: korw %k1, %k0, %k0
247 ; SKX-NEXT: kmovd %k0, %eax
248 ; SKX-NEXT: ## kill: def $ax killed $ax killed $eax
249 ; SKX-NEXT: retq
268 ; SKX-LABEL: test14:
269 ; SKX: ## %bb.0:
270 ; SKX-NEXT: movq %rdi, %rax
271 ; SKX-NEXT: vpcmpgtq %zmm0, %zmm1, %k0
272 ; SKX-NEXT: kshiftrb $4, %k0, %k0
273 ; SKX-NEXT: kmovd %k0, %ecx
274 ; SKX-NEXT: testb $1, %cl
275 ; SKX-NEXT: cmoveq %rsi, %rax
276 ; SKX-NEXT: vzeroupper
277 ; SKX-NEXT: retq
315 ; SKX-LABEL: test16:
316 ; SKX: ## %bb.0:
317 ; SKX-NEXT: kmovb (%rdi), %k0
318 ; SKX-NEXT: kmovd %esi, %k1
319 ; SKX-NEXT: movw $-1025, %ax ## imm = 0xFBFF
320 ; SKX-NEXT: kmovd %eax, %k2
321 ; SKX-NEXT: kandw %k2, %k1, %k1
322 ; SKX-NEXT: kshiftlw $15, %k0, %k0
323 ; SKX-NEXT: kshiftrw $5, %k0, %k0
324 ; SKX-NEXT: korw %k0, %k1, %k0
325 ; SKX-NEXT: kmovd %k0, %eax
326 ; SKX-NEXT: ## kill: def $ax killed $ax killed $eax
327 ; SKX-NEXT: retq
351 ; SKX-LABEL: test17:
352 ; SKX: ## %bb.0:
353 ; SKX-NEXT: kmovb (%rdi), %k0
354 ; SKX-NEXT: kmovd %esi, %k1
355 ; SKX-NEXT: movb $-17, %al
356 ; SKX-NEXT: kmovd %eax, %k2
357 ; SKX-NEXT: kandb %k2, %k1, %k1
358 ; SKX-NEXT: kshiftlb $7, %k0, %k0
359 ; SKX-NEXT: kshiftrb $3, %k0, %k0
360 ; SKX-NEXT: korb %k0, %k1, %k0
361 ; SKX-NEXT: kmovd %k0, %eax
362 ; SKX-NEXT: ## kill: def $al killed $al killed $eax
363 ; SKX-NEXT: retq
783 ; SKX-LABEL: test_insertelement_v32i1:
784 ; SKX: ## %bb.0:
785 ; SKX-NEXT: cmpl %esi, %edi
786 ; SKX-NEXT: setb %al
787 ; SKX-NEXT: vpcmpltud %zmm2, %zmm0, %k0
788 ; SKX-NEXT: vpcmpltud %zmm3, %zmm1, %k1
789 ; SKX-NEXT: kunpckwd %k0, %k1, %k0
790 ; SKX-NEXT: movl $-17, %ecx
791 ; SKX-NEXT: kmovd %ecx, %k1
792 ; SKX-NEXT: kandd %k1, %k0, %k0
793 ; SKX-NEXT: kmovd %eax, %k1
794 ; SKX-NEXT: kshiftld $31, %k1, %k1
795 ; SKX-NEXT: kshiftrd $27, %k1, %k1
796 ; SKX-NEXT: kord %k1, %k0, %k0
797 ; SKX-NEXT: kmovd %k0, %eax
798 ; SKX-NEXT: vzeroupper
799 ; SKX-NEXT: retq
826 ; SKX-LABEL: test_iinsertelement_v4i1:
827 ; SKX: ## %bb.0:
828 ; SKX-NEXT: cmpl %esi, %edi
829 ; SKX-NEXT: setb %al
830 ; SKX-NEXT: movb $-5, %cl
831 ; SKX-NEXT: kmovd %ecx, %k1
832 ; SKX-NEXT: vpcmpltud %xmm1, %xmm0, %k0 {%k1}
833 ; SKX-NEXT: kmovd %eax, %k1
834 ; SKX-NEXT: kshiftlb $7, %k1, %k1
835 ; SKX-NEXT: kshiftrb $5, %k1, %k1
836 ; SKX-NEXT: korw %k1, %k0, %k0
837 ; SKX-NEXT: kmovd %k0, %eax
838 ; SKX-NEXT: ## kill: def $al killed $al killed $eax
839 ; SKX-NEXT: retq
866 ; SKX-LABEL: test_iinsertelement_v2i1:
867 ; SKX: ## %bb.0:
868 ; SKX-NEXT: cmpl %esi, %edi
869 ; SKX-NEXT: setb %al
870 ; SKX-NEXT: vpcmpltuq %xmm1, %xmm0, %k0
871 ; SKX-NEXT: kshiftlb $7, %k0, %k0
872 ; SKX-NEXT: kshiftrb $7, %k0, %k0
873 ; SKX-NEXT: kmovd %eax, %k1
874 ; SKX-NEXT: kshiftlb $1, %k1, %k1
875 ; SKX-NEXT: korw %k1, %k0, %k0
876 ; SKX-NEXT: kmovd %k0, %eax
877 ; SKX-NEXT: ## kill: def $al killed $al killed $eax
878 ; SKX-NEXT: retq
900 ; SKX-LABEL: test_extractelement_v2i1:
901 ; SKX: ## %bb.0:
902 ; SKX-NEXT: vpcmpnleuq %xmm1, %xmm0, %k0
903 ; SKX-NEXT: kmovd %k0, %ecx
904 ; SKX-NEXT: andl $1, %ecx
905 ; SKX-NEXT: movl $4, %eax
906 ; SKX-NEXT: subl %ecx, %eax
907 ; SKX-NEXT: retq
928 ; SKX-LABEL: extractelement_v2i1_alt:
929 ; SKX: ## %bb.0:
930 ; SKX-NEXT: vpcmpnleuq %xmm1, %xmm0, %k0
931 ; SKX-NEXT: kmovd %k0, %eax
932 ; SKX-NEXT: andb $1, %al
933 ; SKX-NEXT: movb $4, %cl
934 ; SKX-NEXT: subb %al, %cl
935 ; SKX-NEXT: movzbl %cl, %eax
936 ; SKX-NEXT: retq
956 ; SKX-LABEL: test_extractelement_v4i1:
957 ; SKX: ## %bb.0:
958 ; SKX-NEXT: vpcmpnleud %xmm1, %xmm0, %k0
959 ; SKX-NEXT: kshiftrb $3, %k0, %k0
960 ; SKX-NEXT: kmovd %k0, %eax
961 ; SKX-NEXT: andl $1, %eax
962 ; SKX-NEXT: retq
983 ; SKX-LABEL: test_extractelement_v32i1:
984 ; SKX: ## %bb.0:
985 ; SKX-NEXT: vpcmpnleub %ymm1, %ymm0, %k0
986 ; SKX-NEXT: kshiftrd $2, %k0, %k0
987 ; SKX-NEXT: kmovd %k0, %eax
988 ; SKX-NEXT: andl $1, %eax
989 ; SKX-NEXT: vzeroupper
990 ; SKX-NEXT: retq
1017 ; SKX-LABEL: test_extractelement_v64i1:
1018 ; SKX: ## %bb.0:
1019 ; SKX-NEXT: vpcmpnleub %zmm1, %zmm0, %k0
1020 ; SKX-NEXT: kshiftrq $63, %k0, %k0
1021 ; SKX-NEXT: kmovd %k0, %ecx
1022 ; SKX-NEXT: andl $1, %ecx
1023 ; SKX-NEXT: movl $4, %eax
1024 ; SKX-NEXT: subl %ecx, %eax
1025 ; SKX-NEXT: vzeroupper
1026 ; SKX-NEXT: retq
1054 ; SKX-LABEL: extractelement_v64i1_alt:
1055 ; SKX: ## %bb.0:
1056 ; SKX-NEXT: vpcmpnleub %zmm1, %zmm0, %k0
1057 ; SKX-NEXT: kshiftrq $63, %k0, %k0
1058 ; SKX-NEXT: kmovd %k0, %eax
1059 ; SKX-NEXT: andb $1, %al
1060 ; SKX-NEXT: movb $4, %cl
1061 ; SKX-NEXT: subb %al, %cl
1062 ; SKX-NEXT: movzbl %cl, %eax
1063 ; SKX-NEXT: vzeroupper
1064 ; SKX-NEXT: retq
1450 ; SKX-LABEL: test_extractelement_varible_v2i1:
1451 ; SKX: ## %bb.0:
1452 ; SKX-NEXT: ## kill: def $edi killed $edi def $rdi
1453 ; SKX-NEXT: vpcmpnleuq %xmm1, %xmm0, %k0
1454 ; SKX-NEXT: vpmovm2q %k0, %xmm0
1455 ; SKX-NEXT: vmovdqa %xmm0, -{{[0-9]+}}(%rsp)
1456 ; SKX-NEXT: andl $1, %edi
1457 ; SKX-NEXT: movzbl -24(%rsp,%rdi,8), %eax
1458 ; SKX-NEXT: andl $1, %eax
1459 ; SKX-NEXT: retq
1481 ; SKX-LABEL: test_extractelement_varible_v4i1:
1482 ; SKX: ## %bb.0:
1483 ; SKX-NEXT: ## kill: def $edi killed $edi def $rdi
1484 ; SKX-NEXT: vpcmpnleud %xmm1, %xmm0, %k0
1485 ; SKX-NEXT: vpmovm2d %k0, %xmm0
1486 ; SKX-NEXT: vmovdqa %xmm0, -{{[0-9]+}}(%rsp)
1487 ; SKX-NEXT: andl $3, %edi
1488 ; SKX-NEXT: movzbl -24(%rsp,%rdi,4), %eax
1489 ; SKX-NEXT: andl $1, %eax
1490 ; SKX-NEXT: retq
1513 ; SKX-LABEL: test_extractelement_varible_v8i1:
1514 ; SKX: ## %bb.0:
1515 ; SKX-NEXT: ## kill: def $edi killed $edi def $rdi
1516 ; SKX-NEXT: vpcmpnleud %ymm1, %ymm0, %k0
1517 ; SKX-NEXT: vpmovm2w %k0, %xmm0
1518 ; SKX-NEXT: vmovdqa %xmm0, -{{[0-9]+}}(%rsp)
1519 ; SKX-NEXT: andl $7, %edi
1520 ; SKX-NEXT: movzbl -24(%rsp,%rdi,2), %eax
1521 ; SKX-NEXT: andl $1, %eax
1522 ; SKX-NEXT: vzeroupper
1523 ; SKX-NEXT: retq
1543 ; SKX-LABEL: test_extractelement_varible_v16i1:
1544 ; SKX: ## %bb.0:
1545 ; SKX-NEXT: ## kill: def $edi killed $edi def $rdi
1546 ; SKX-NEXT: vpcmpnleud %zmm1, %zmm0, %k0
1547 ; SKX-NEXT: vpmovm2b %k0, %xmm0
1548 ; SKX-NEXT: vmovdqa %xmm0, -{{[0-9]+}}(%rsp)
1549 ; SKX-NEXT: andl $15, %edi
1550 ; SKX-NEXT: movzbl -24(%rsp,%rdi), %eax
1551 ; SKX-NEXT: andl $1, %eax
1552 ; SKX-NEXT: vzeroupper
1553 ; SKX-NEXT: retq
1583 ; SKX-LABEL: test_extractelement_varible_v32i1:
1584 ; SKX: ## %bb.0:
1585 ; SKX-NEXT: pushq %rbp
1586 ; SKX-NEXT: .cfi_def_cfa_offset 16
1587 ; SKX-NEXT: .cfi_offset %rbp, -16
1588 ; SKX-NEXT: movq %rsp, %rbp
1589 ; SKX-NEXT: .cfi_def_cfa_register %rbp
1590 ; SKX-NEXT: andq $-32, %rsp
1591 ; SKX-NEXT: subq $64, %rsp
1592 ; SKX-NEXT: ## kill: def $edi killed $edi def $rdi
1593 ; SKX-NEXT: vpcmpnleub %ymm1, %ymm0, %k0
1594 ; SKX-NEXT: vpmovm2b %k0, %ymm0
1595 ; SKX-NEXT: vmovdqa %ymm0, (%rsp)
1596 ; SKX-NEXT: andl $31, %edi
1597 ; SKX-NEXT: movzbl (%rsp,%rdi), %eax
1598 ; SKX-NEXT: andl $1, %eax
1599 ; SKX-NEXT: movq %rbp, %rsp
1600 ; SKX-NEXT: popq %rbp
1601 ; SKX-NEXT: vzeroupper
1602 ; SKX-NEXT: retq
1654 ; SKX-LABEL: test_insertelement_variable_v32i1:
1655 ; SKX: ## %bb.0:
1656 ; SKX-NEXT: pushq %rbp
1657 ; SKX-NEXT: .cfi_def_cfa_offset 16
1658 ; SKX-NEXT: .cfi_offset %rbp, -16
1659 ; SKX-NEXT: movq %rsp, %rbp
1660 ; SKX-NEXT: .cfi_def_cfa_register %rbp
1661 ; SKX-NEXT: andq $-32, %rsp
1662 ; SKX-NEXT: subq $64, %rsp
1663 ; SKX-NEXT: ## kill: def $esi killed $esi def $rsi
1664 ; SKX-NEXT: vptestmb %ymm0, %ymm0, %k0
1665 ; SKX-NEXT: andl $31, %esi
1666 ; SKX-NEXT: testb %dil, %dil
1667 ; SKX-NEXT: vpmovm2b %k0, %ymm0
1668 ; SKX-NEXT: vmovdqa %ymm0, (%rsp)
1669 ; SKX-NEXT: setne (%rsp,%rsi)
1670 ; SKX-NEXT: vpsllw $7, (%rsp), %ymm0
1671 ; SKX-NEXT: vpmovb2m %ymm0, %k0
1672 ; SKX-NEXT: kmovd %k0, %eax
1673 ; SKX-NEXT: movq %rbp, %rsp
1674 ; SKX-NEXT: popq %rbp
1675 ; SKX-NEXT: vzeroupper
1676 ; SKX-NEXT: retq
1732 ; SKX-LABEL: test_insertelement_variable_v64i1:
1733 ; SKX: ## %bb.0:
1734 ; SKX-NEXT: pushq %rbp
1735 ; SKX-NEXT: .cfi_def_cfa_offset 16
1736 ; SKX-NEXT: .cfi_offset %rbp, -16
1737 ; SKX-NEXT: movq %rsp, %rbp
1738 ; SKX-NEXT: .cfi_def_cfa_register %rbp
1739 ; SKX-NEXT: andq $-64, %rsp
1740 ; SKX-NEXT: subq $128, %rsp
1741 ; SKX-NEXT: ## kill: def $esi killed $esi def $rsi
1742 ; SKX-NEXT: vptestmb %zmm0, %zmm0, %k0
1743 ; SKX-NEXT: andl $63, %esi
1744 ; SKX-NEXT: testb %dil, %dil
1745 ; SKX-NEXT: vpmovm2b %k0, %zmm0
1746 ; SKX-NEXT: vmovdqa64 %zmm0, (%rsp)
1747 ; SKX-NEXT: setne (%rsp,%rsi)
1748 ; SKX-NEXT: vpsllw $7, (%rsp), %zmm0
1749 ; SKX-NEXT: vpmovb2m %zmm0, %k0
1750 ; SKX-NEXT: kmovq %k0, %rax
1751 ; SKX-NEXT: movq %rbp, %rsp
1752 ; SKX-NEXT: popq %rbp
1753 ; SKX-NEXT: vzeroupper
1754 ; SKX-NEXT: retq
1933 ; SKX-LABEL: test_insertelement_variable_v96i1:
1934 ; SKX: ## %bb.0:
1935 ; SKX-NEXT: pushq %rbp
1936 ; SKX-NEXT: .cfi_def_cfa_offset 16
1937 ; SKX-NEXT: .cfi_offset %rbp, -16
1938 ; SKX-NEXT: movq %rsp, %rbp
1939 ; SKX-NEXT: .cfi_def_cfa_register %rbp
1940 ; SKX-NEXT: andq $-64, %rsp
1941 ; SKX-NEXT: subq $192, %rsp
1942 ; SKX-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
1943 ; SKX-NEXT: vpinsrb $1, 232(%rbp), %xmm0, %xmm0
1944 ; SKX-NEXT: vpinsrb $2, 240(%rbp), %xmm0, %xmm0
1945 ; SKX-NEXT: vpinsrb $3, 248(%rbp), %xmm0, %xmm0
1946 ; SKX-NEXT: vpinsrb $4, 256(%rbp), %xmm0, %xmm0
1947 ; SKX-NEXT: vpinsrb $5, 264(%rbp), %xmm0, %xmm0
1948 ; SKX-NEXT: vpinsrb $6, 272(%rbp), %xmm0, %xmm0
1949 ; SKX-NEXT: vpinsrb $7, 280(%rbp), %xmm0, %xmm0
1950 ; SKX-NEXT: vpinsrb $8, 288(%rbp), %xmm0, %xmm0
1951 ; SKX-NEXT: vpinsrb $9, 296(%rbp), %xmm0, %xmm0
1952 ; SKX-NEXT: vpinsrb $10, 304(%rbp), %xmm0, %xmm0
1953 ; SKX-NEXT: vpinsrb $11, 312(%rbp), %xmm0, %xmm0
1954 ; SKX-NEXT: vpinsrb $12, 320(%rbp), %xmm0, %xmm0
1955 ; SKX-NEXT: vpinsrb $13, 328(%rbp), %xmm0, %xmm0
1956 ; SKX-NEXT: vpinsrb $14, 336(%rbp), %xmm0, %xmm0
1957 ; SKX-NEXT: vpinsrb $15, 344(%rbp), %xmm0, %xmm0
1958 ; SKX-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
1959 ; SKX-NEXT: vpinsrb $1, 360(%rbp), %xmm1, %xmm1
1960 ; SKX-NEXT: vpinsrb $2, 368(%rbp), %xmm1, %xmm1
1961 ; SKX-NEXT: vpinsrb $3, 376(%rbp), %xmm1, %xmm1
1962 ; SKX-NEXT: vpinsrb $4, 384(%rbp), %xmm1, %xmm1
1963 ; SKX-NEXT: vpinsrb $5, 392(%rbp), %xmm1, %xmm1
1964 ; SKX-NEXT: vpinsrb $6, 400(%rbp), %xmm1, %xmm1
1965 ; SKX-NEXT: vpinsrb $7, 408(%rbp), %xmm1, %xmm1
1966 ; SKX-NEXT: vpinsrb $8, 416(%rbp), %xmm1, %xmm1
1967 ; SKX-NEXT: vpinsrb $9, 424(%rbp), %xmm1, %xmm1
1968 ; SKX-NEXT: vpinsrb $10, 432(%rbp), %xmm1, %xmm1
1969 ; SKX-NEXT: vpinsrb $11, 440(%rbp), %xmm1, %xmm1
1970 ; SKX-NEXT: vpinsrb $12, 448(%rbp), %xmm1, %xmm1
1971 ; SKX-NEXT: vpinsrb $13, 456(%rbp), %xmm1, %xmm1
1972 ; SKX-NEXT: vpinsrb $14, 464(%rbp), %xmm1, %xmm1
1973 ; SKX-NEXT: vpinsrb $15, 472(%rbp), %xmm1, %xmm1
1974 ; SKX-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
1975 ; SKX-NEXT: vmovd %edi, %xmm1
1976 ; SKX-NEXT: vpinsrb $1, %esi, %xmm1, %xmm1
1977 ; SKX-NEXT: vpinsrb $2, %edx, %xmm1, %xmm1
1978 ; SKX-NEXT: vpinsrb $3, %ecx, %xmm1, %xmm1
1979 ; SKX-NEXT: vpinsrb $4, %r8d, %xmm1, %xmm1
1980 ; SKX-NEXT: vpinsrb $5, %r9d, %xmm1, %xmm1
1981 ; SKX-NEXT: vpinsrb $6, 16(%rbp), %xmm1, %xmm1
1982 ; SKX-NEXT: vpinsrb $7, 24(%rbp), %xmm1, %xmm1
1983 ; SKX-NEXT: vpinsrb $8, 32(%rbp), %xmm1, %xmm1
1984 ; SKX-NEXT: vpinsrb $9, 40(%rbp), %xmm1, %xmm1
1985 ; SKX-NEXT: vpinsrb $10, 48(%rbp), %xmm1, %xmm1
1986 ; SKX-NEXT: vpinsrb $11, 56(%rbp), %xmm1, %xmm1
1987 ; SKX-NEXT: vpinsrb $12, 64(%rbp), %xmm1, %xmm1
1988 ; SKX-NEXT: vpinsrb $13, 72(%rbp), %xmm1, %xmm1
1989 ; SKX-NEXT: vpinsrb $14, 80(%rbp), %xmm1, %xmm1
1990 ; SKX-NEXT: vpinsrb $15, 88(%rbp), %xmm1, %xmm1
1991 ; SKX-NEXT: vmovd {{.*#+}} xmm2 = mem[0],zero,zero,zero
1992 ; SKX-NEXT: vpinsrb $1, 104(%rbp), %xmm2, %xmm2
1993 ; SKX-NEXT: vpinsrb $2, 112(%rbp), %xmm2, %xmm2
1994 ; SKX-NEXT: vpinsrb $3, 120(%rbp), %xmm2, %xmm2
1995 ; SKX-NEXT: vpinsrb $4, 128(%rbp), %xmm2, %xmm2
1996 ; SKX-NEXT: vpinsrb $5, 136(%rbp), %xmm2, %xmm2
1997 ; SKX-NEXT: vpinsrb $6, 144(%rbp), %xmm2, %xmm2
1998 ; SKX-NEXT: vpinsrb $7, 152(%rbp), %xmm2, %xmm2
1999 ; SKX-NEXT: vpinsrb $8, 160(%rbp), %xmm2, %xmm2
2000 ; SKX-NEXT: vpinsrb $9, 168(%rbp), %xmm2, %xmm2
2001 ; SKX-NEXT: vpinsrb $10, 176(%rbp), %xmm2, %xmm2
2002 ; SKX-NEXT: vpinsrb $11, 184(%rbp), %xmm2, %xmm2
2003 ; SKX-NEXT: vpinsrb $12, 192(%rbp), %xmm2, %xmm2
2004 ; SKX-NEXT: vpinsrb $13, 200(%rbp), %xmm2, %xmm2
2005 ; SKX-NEXT: vpinsrb $14, 208(%rbp), %xmm2, %xmm2
2006 ; SKX-NEXT: vpinsrb $15, 216(%rbp), %xmm2, %xmm2
2007 ; SKX-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
2008 ; SKX-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
2009 ; SKX-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
2010 ; SKX-NEXT: vpinsrb $1, 488(%rbp), %xmm1, %xmm1
2011 ; SKX-NEXT: vpinsrb $2, 496(%rbp), %xmm1, %xmm1
2012 ; SKX-NEXT: vpinsrb $3, 504(%rbp), %xmm1, %xmm1
2013 ; SKX-NEXT: vpinsrb $4, 512(%rbp), %xmm1, %xmm1
2014 ; SKX-NEXT: vpinsrb $5, 520(%rbp), %xmm1, %xmm1
2015 ; SKX-NEXT: vpinsrb $6, 528(%rbp), %xmm1, %xmm1
2016 ; SKX-NEXT: vpinsrb $7, 536(%rbp), %xmm1, %xmm1
2017 ; SKX-NEXT: vpinsrb $8, 544(%rbp), %xmm1, %xmm1
2018 ; SKX-NEXT: vpinsrb $9, 552(%rbp), %xmm1, %xmm1
2019 ; SKX-NEXT: vpinsrb $10, 560(%rbp), %xmm1, %xmm1
2020 ; SKX-NEXT: vpinsrb $11, 568(%rbp), %xmm1, %xmm1
2021 ; SKX-NEXT: vpinsrb $12, 576(%rbp), %xmm1, %xmm1
2022 ; SKX-NEXT: vpinsrb $13, 584(%rbp), %xmm1, %xmm1
2023 ; SKX-NEXT: vpinsrb $14, 592(%rbp), %xmm1, %xmm1
2024 ; SKX-NEXT: vpinsrb $15, 600(%rbp), %xmm1, %xmm1
2025 ; SKX-NEXT: vmovd {{.*#+}} xmm2 = mem[0],zero,zero,zero
2026 ; SKX-NEXT: vpinsrb $1, 616(%rbp), %xmm2, %xmm2
2027 ; SKX-NEXT: vpinsrb $2, 624(%rbp), %xmm2, %xmm2
2028 ; SKX-NEXT: vpinsrb $3, 632(%rbp), %xmm2, %xmm2
2029 ; SKX-NEXT: vpinsrb $4, 640(%rbp), %xmm2, %xmm2
2030 ; SKX-NEXT: vpinsrb $5, 648(%rbp), %xmm2, %xmm2
2031 ; SKX-NEXT: vpinsrb $6, 656(%rbp), %xmm2, %xmm2
2032 ; SKX-NEXT: vpinsrb $7, 664(%rbp), %xmm2, %xmm2
2033 ; SKX-NEXT: vpinsrb $8, 672(%rbp), %xmm2, %xmm2
2034 ; SKX-NEXT: vpinsrb $9, 680(%rbp), %xmm2, %xmm2
2035 ; SKX-NEXT: vpinsrb $10, 688(%rbp), %xmm2, %xmm2
2036 ; SKX-NEXT: vpinsrb $11, 696(%rbp), %xmm2, %xmm2
2037 ; SKX-NEXT: vpinsrb $12, 704(%rbp), %xmm2, %xmm2
2038 ; SKX-NEXT: vpinsrb $13, 712(%rbp), %xmm2, %xmm2
2039 ; SKX-NEXT: vpinsrb $14, 720(%rbp), %xmm2, %xmm2
2040 ; SKX-NEXT: vpinsrb $15, 728(%rbp), %xmm2, %xmm2
2041 ; SKX-NEXT: vinserti128 $1, %xmm2, %ymm1, %ymm1
2042 ; SKX-NEXT: movl 744(%rbp), %eax
2043 ; SKX-NEXT: andl $127, %eax
2044 ; SKX-NEXT: vptestmb %zmm0, %zmm0, %k0
2045 ; SKX-NEXT: vptestmb %zmm1, %zmm1, %k1
2046 ; SKX-NEXT: cmpb $0, 736(%rbp)
2047 ; SKX-NEXT: vpmovm2b %k1, %zmm0
2048 ; SKX-NEXT: vmovdqa64 %zmm0, {{[0-9]+}}(%rsp)
2049 ; SKX-NEXT: vpmovm2b %k0, %zmm0
2050 ; SKX-NEXT: vmovdqa64 %zmm0, (%rsp)
2051 ; SKX-NEXT: setne (%rsp,%rax)
2052 ; SKX-NEXT: vpsllw $7, {{[0-9]+}}(%rsp), %zmm0
2053 ; SKX-NEXT: vpmovb2m %zmm0, %k0
2054 ; SKX-NEXT: vpsllw $7, (%rsp), %zmm0
2055 ; SKX-NEXT: vpmovb2m %zmm0, %k1
2056 ; SKX-NEXT: kmovq %k1, %rax
2057 ; SKX-NEXT: kmovq %k0, %rdx
2058 ; SKX-NEXT: movq %rbp, %rsp
2059 ; SKX-NEXT: popq %rbp
2060 ; SKX-NEXT: vzeroupper
2061 ; SKX-NEXT: retq
2145 ; SKX-LABEL: test_insertelement_variable_v128i1:
2146 ; SKX: ## %bb.0:
2147 ; SKX-NEXT: pushq %rbp
2148 ; SKX-NEXT: .cfi_def_cfa_offset 16
2149 ; SKX-NEXT: .cfi_offset %rbp, -16
2150 ; SKX-NEXT: movq %rsp, %rbp
2151 ; SKX-NEXT: .cfi_def_cfa_register %rbp
2152 ; SKX-NEXT: andq $-64, %rsp
2153 ; SKX-NEXT: subq $192, %rsp
2154 ; SKX-NEXT: ## kill: def $esi killed $esi def $rsi
2155 ; SKX-NEXT: vptestmb %zmm0, %zmm0, %k0
2156 ; SKX-NEXT: vptestmb %zmm1, %zmm1, %k1
2157 ; SKX-NEXT: andl $127, %esi
2158 ; SKX-NEXT: testb %dil, %dil
2159 ; SKX-NEXT: vpmovm2b %k1, %zmm0
2160 ; SKX-NEXT: vmovdqa64 %zmm0, {{[0-9]+}}(%rsp)
2161 ; SKX-NEXT: vpmovm2b %k0, %zmm0
2162 ; SKX-NEXT: vmovdqa64 %zmm0, (%rsp)
2163 ; SKX-NEXT: setne (%rsp,%rsi)
2164 ; SKX-NEXT: vpsllw $7, {{[0-9]+}}(%rsp), %zmm0
2165 ; SKX-NEXT: vpmovb2m %zmm0, %k0
2166 ; SKX-NEXT: vpsllw $7, (%rsp), %zmm0
2167 ; SKX-NEXT: vpmovb2m %zmm0, %k1
2168 ; SKX-NEXT: kmovq %k1, %rax
2169 ; SKX-NEXT: kmovq %k0, %rdx
2170 ; SKX-NEXT: movq %rbp, %rsp
2171 ; SKX-NEXT: popq %rbp
2172 ; SKX-NEXT: vzeroupper
2173 ; SKX-NEXT: retq
2230 ; SKX-LABEL: test_concat_v2i1:
2231 ; SKX: ## %bb.0:
2232 ; SKX-NEXT: movzwl (%rdi), %eax
2233 ; SKX-NEXT: movzwl 2(%rdi), %ecx
2234 ; SKX-NEXT: vmovd %ecx, %xmm0
2235 ; SKX-NEXT: vcvtph2ps %xmm0, %xmm0
2236 ; SKX-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero
2237 ; SKX-NEXT: vucomiss %xmm1, %xmm0
2238 ; SKX-NEXT: setb %cl
2239 ; SKX-NEXT: kmovd %ecx, %k0
2240 ; SKX-NEXT: kshiftlb $1, %k0, %k0
2241 ; SKX-NEXT: vmovd %eax, %xmm2
2242 ; SKX-NEXT: vcvtph2ps %xmm2, %xmm2
2243 ; SKX-NEXT: vucomiss %xmm1, %xmm2
2244 ; SKX-NEXT: setb %al
2245 ; SKX-NEXT: kmovd %eax, %k1
2246 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2247 ; SKX-NEXT: kshiftrb $7, %k1, %k1
2248 ; SKX-NEXT: korw %k0, %k1, %k0
2249 ; SKX-NEXT: vxorps %xmm1, %xmm1, %xmm1
2250 ; SKX-NEXT: vucomiss %xmm1, %xmm0
2251 ; SKX-NEXT: seta %al
2252 ; SKX-NEXT: kmovd %eax, %k1
2253 ; SKX-NEXT: kshiftlb $1, %k1, %k1
2254 ; SKX-NEXT: vucomiss %xmm1, %xmm2
2255 ; SKX-NEXT: seta %al
2256 ; SKX-NEXT: kmovd %eax, %k2
2257 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2258 ; SKX-NEXT: kshiftrb $7, %k2, %k2
2259 ; SKX-NEXT: korw %k1, %k2, %k1
2260 ; SKX-NEXT: kandw %k1, %k0, %k0
2261 ; SKX-NEXT: kshiftrb $1, %k0, %k1
2262 ; SKX-NEXT: kmovd %k1, %ecx
2263 ; SKX-NEXT: xorl %eax, %eax
2264 ; SKX-NEXT: testb $1, %cl
2265 ; SKX-NEXT: movl $0, %ecx
2266 ; SKX-NEXT: je LBB85_2
2267 ; SKX-NEXT: ## %bb.1:
2268 ; SKX-NEXT: movzwl 2(%rsi), %ecx
2269 ; SKX-NEXT: LBB85_2:
2270 ; SKX-NEXT: kmovd %k0, %edi
2271 ; SKX-NEXT: testb $1, %dil
2272 ; SKX-NEXT: je LBB85_4
2273 ; SKX-NEXT: ## %bb.3:
2274 ; SKX-NEXT: movzwl (%rsi), %eax
2275 ; SKX-NEXT: LBB85_4:
2276 ; SKX-NEXT: movw %ax, (%rdx)
2277 ; SKX-NEXT: movw %cx, 2(%rdx)
2278 ; SKX-NEXT: retq