• Home
  • Raw
  • Download

Lines Matching refs:SKX

3 …%s -mtriple=x86_64-apple-darwin9 -mcpu=skx | FileCheck %s --check-prefix=ALL_X64 --check-prefix=SKX
114 ; SKX-LABEL: test5:
115 ; SKX: ## %bb.0:
116 ; SKX-NEXT: pushq %rax
117 ; SKX-NEXT: .cfi_def_cfa_offset 16
118 ; SKX-NEXT: vpcmpgtd %ymm1, %ymm0, %k0
119 ; SKX-NEXT: vpmovm2w %k0, %xmm0
120 ; SKX-NEXT: vzeroupper
121 ; SKX-NEXT: callq _func8xi1
122 ; SKX-NEXT: vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4…
123 ; SKX-NEXT: vpslld $31, %ymm0, %ymm0
124 ; SKX-NEXT: vpsrad $31, %ymm0, %ymm0
125 ; SKX-NEXT: popq %rax
126 ; SKX-NEXT: retq
178 ; SKX-LABEL: test6:
179 ; SKX: ## %bb.0:
180 ; SKX-NEXT: pushq %rax
181 ; SKX-NEXT: .cfi_def_cfa_offset 16
182 ; SKX-NEXT: vpcmpgtd %zmm1, %zmm0, %k0
183 ; SKX-NEXT: vpmovm2b %k0, %xmm0
184 ; SKX-NEXT: vzeroupper
185 ; SKX-NEXT: callq _func16xi1
186 ; SKX-NEXT: vpmovzxbd {{.*#+}} zmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero…
187 ; SKX-NEXT: vpslld $31, %zmm0, %zmm0
188 ; SKX-NEXT: vpsrad $31, %zmm0, %zmm0
189 ; SKX-NEXT: popq %rax
190 ; SKX-NEXT: retq
281 ; SKX-LABEL: test7a:
282 ; SKX: ## %bb.0:
283 ; SKX-NEXT: pushq %rax
284 ; SKX-NEXT: .cfi_def_cfa_offset 16
285 ; SKX-NEXT: vpcmpgtd %ymm1, %ymm0, %k0
286 ; SKX-NEXT: vpmovm2w %k0, %xmm0
287 ; SKX-NEXT: vzeroupper
288 ; SKX-NEXT: callq _func8xi1
289 ; SKX-NEXT: vpand {{.*}}(%rip), %xmm0, %xmm0
290 ; SKX-NEXT: popq %rax
291 ; SKX-NEXT: retq
529 ; SKX-LABEL: test13:
530 ; SKX: ## %bb.0:
531 ; SKX-NEXT: kmovb (%rdi), %k0
532 ; SKX-NEXT: kmovd %k0, %eax
533 ; SKX-NEXT: ## kill: def $al killed $al killed $eax
534 ; SKX-NEXT: retq
566 ; SKX-LABEL: test14:
567 ; SKX: ## %bb.0:
568 ; SKX-NEXT: pushq %rbx
569 ; SKX-NEXT: .cfi_def_cfa_offset 16
570 ; SKX-NEXT: .cfi_offset %rbx, -16
571 ; SKX-NEXT: movq %rdi, %rbx
572 ; SKX-NEXT: vmovaps (%rdi), %zmm0
573 ; SKX-NEXT: callq _test14_callee
574 ; SKX-NEXT: vmovaps %zmm0, (%rbx)
575 ; SKX-NEXT: popq %rbx
576 ; SKX-NEXT: vzeroupper
577 ; SKX-NEXT: retq
626 ; SKX-LABEL: test15:
627 ; SKX: ## %bb.0:
628 ; SKX-NEXT: pushq %rbx
629 ; SKX-NEXT: .cfi_def_cfa_offset 16
630 ; SKX-NEXT: .cfi_offset %rbx, -16
631 ; SKX-NEXT: movq %rdi, %rbx
632 ; SKX-NEXT: vmovaps (%rdi), %zmm0
633 ; SKX-NEXT: callq _test15_callee
634 ; SKX-NEXT: vmovaps %zmm0, (%rbx)
635 ; SKX-NEXT: popq %rbx
636 ; SKX-NEXT: vzeroupper
637 ; SKX-NEXT: retq
1003 ; SKX-LABEL: test16:
1004 ; SKX: ## %bb.0:
1005 ; SKX-NEXT: pushq %rbp
1006 ; SKX-NEXT: pushq %r15
1007 ; SKX-NEXT: pushq %r14
1008 ; SKX-NEXT: pushq %r13
1009 ; SKX-NEXT: pushq %r12
1010 ; SKX-NEXT: pushq %rbx
1011 ; SKX-NEXT: movq %rdi, %rax
1012 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k0
1013 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1014 ; SKX-NEXT: movl $-3, %edi
1015 ; SKX-NEXT: kmovd %edi, %k2
1016 ; SKX-NEXT: kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1017 ; SKX-NEXT: kandd %k2, %k0, %k0
1018 ; SKX-NEXT: kshiftld $31, %k1, %k1
1019 ; SKX-NEXT: kshiftrd $30, %k1, %k1
1020 ; SKX-NEXT: kord %k1, %k0, %k0
1021 ; SKX-NEXT: movl $-5, %edi
1022 ; SKX-NEXT: kmovd %edi, %k1
1023 ; SKX-NEXT: kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1024 ; SKX-NEXT: kandd %k1, %k0, %k0
1025 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1026 ; SKX-NEXT: kshiftld $31, %k1, %k1
1027 ; SKX-NEXT: kshiftrd $29, %k1, %k1
1028 ; SKX-NEXT: kord %k1, %k0, %k0
1029 ; SKX-NEXT: movl $-9, %edi
1030 ; SKX-NEXT: kmovd %edi, %k1
1031 ; SKX-NEXT: kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1032 ; SKX-NEXT: kandd %k1, %k0, %k0
1033 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1034 ; SKX-NEXT: kshiftld $31, %k1, %k1
1035 ; SKX-NEXT: kshiftrd $28, %k1, %k1
1036 ; SKX-NEXT: kord %k1, %k0, %k0
1037 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1038 ; SKX-NEXT: movl $-17, %edi
1039 ; SKX-NEXT: kmovd %edi, %k2
1040 ; SKX-NEXT: kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1041 ; SKX-NEXT: kandd %k2, %k0, %k0
1042 ; SKX-NEXT: kshiftld $31, %k1, %k1
1043 ; SKX-NEXT: kshiftrd $27, %k1, %k1
1044 ; SKX-NEXT: kord %k1, %k0, %k0
1045 ; SKX-NEXT: movl $-33, %edi
1046 ; SKX-NEXT: kmovd %edi, %k1
1047 ; SKX-NEXT: kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1048 ; SKX-NEXT: kandd %k1, %k0, %k0
1049 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1050 ; SKX-NEXT: kshiftld $31, %k1, %k1
1051 ; SKX-NEXT: kshiftrd $26, %k1, %k1
1052 ; SKX-NEXT: kord %k1, %k0, %k0
1053 ; SKX-NEXT: movl $-65, %edi
1054 ; SKX-NEXT: kmovd %edi, %k1
1055 ; SKX-NEXT: kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1056 ; SKX-NEXT: kandd %k1, %k0, %k0
1057 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1058 ; SKX-NEXT: kshiftld $31, %k1, %k1
1059 ; SKX-NEXT: kshiftrd $25, %k1, %k1
1060 ; SKX-NEXT: kord %k1, %k0, %k0
1061 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1062 ; SKX-NEXT: movl $-129, %edi
1063 ; SKX-NEXT: kmovd %edi, %k2
1064 ; SKX-NEXT: kmovd %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1065 ; SKX-NEXT: kandd %k2, %k0, %k0
1066 ; SKX-NEXT: kshiftld $31, %k1, %k1
1067 ; SKX-NEXT: kshiftrd $24, %k1, %k1
1068 ; SKX-NEXT: kord %k1, %k0, %k0
1069 ; SKX-NEXT: movl $-257, %edi ## imm = 0xFEFF
1070 ; SKX-NEXT: kmovd %edi, %k1
1071 ; SKX-NEXT: kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1072 ; SKX-NEXT: kandd %k1, %k0, %k0
1073 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1074 ; SKX-NEXT: kshiftld $31, %k1, %k1
1075 ; SKX-NEXT: kshiftrd $23, %k1, %k1
1076 ; SKX-NEXT: kord %k1, %k0, %k0
1077 ; SKX-NEXT: movl $-513, %edi ## imm = 0xFDFF
1078 ; SKX-NEXT: kmovd %edi, %k1
1079 ; SKX-NEXT: kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1080 ; SKX-NEXT: kandd %k1, %k0, %k0
1081 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1082 ; SKX-NEXT: kshiftld $31, %k1, %k1
1083 ; SKX-NEXT: kshiftrd $22, %k1, %k1
1084 ; SKX-NEXT: kord %k1, %k0, %k0
1085 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1086 ; SKX-NEXT: movl $-1025, %edi ## imm = 0xFBFF
1087 ; SKX-NEXT: kmovd %edi, %k6
1088 ; SKX-NEXT: kandd %k6, %k0, %k0
1089 ; SKX-NEXT: kshiftld $31, %k1, %k1
1090 ; SKX-NEXT: kshiftrd $21, %k1, %k1
1091 ; SKX-NEXT: kord %k1, %k0, %k0
1092 ; SKX-NEXT: movl $-2049, %edi ## imm = 0xF7FF
1093 ; SKX-NEXT: kmovd %edi, %k1
1094 ; SKX-NEXT: kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1095 ; SKX-NEXT: kandd %k1, %k0, %k0
1096 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1097 ; SKX-NEXT: kshiftld $31, %k1, %k1
1098 ; SKX-NEXT: kshiftrd $20, %k1, %k1
1099 ; SKX-NEXT: kord %k1, %k0, %k0
1100 ; SKX-NEXT: movl $-4097, %edi ## imm = 0xEFFF
1101 ; SKX-NEXT: kmovd %edi, %k1
1102 ; SKX-NEXT: kmovd %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1103 ; SKX-NEXT: kandd %k1, %k0, %k0
1104 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1105 ; SKX-NEXT: kshiftld $31, %k1, %k1
1106 ; SKX-NEXT: kshiftrd $19, %k1, %k1
1107 ; SKX-NEXT: kord %k1, %k0, %k0
1108 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1109 ; SKX-NEXT: movl $-8193, %edi ## imm = 0xDFFF
1110 ; SKX-NEXT: kmovd %edi, %k4
1111 ; SKX-NEXT: kandd %k4, %k0, %k0
1112 ; SKX-NEXT: kshiftld $31, %k1, %k1
1113 ; SKX-NEXT: kshiftrd $18, %k1, %k1
1114 ; SKX-NEXT: kord %k1, %k0, %k0
1115 ; SKX-NEXT: movl $-16385, %edi ## imm = 0xBFFF
1116 ; SKX-NEXT: kmovd %edi, %k5
1117 ; SKX-NEXT: kandd %k5, %k0, %k0
1118 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1119 ; SKX-NEXT: kshiftld $31, %k1, %k1
1120 ; SKX-NEXT: kshiftrd $17, %k1, %k1
1121 ; SKX-NEXT: kord %k1, %k0, %k0
1122 ; SKX-NEXT: movl $-32769, %edi ## imm = 0xFFFF7FFF
1123 ; SKX-NEXT: kmovd %edi, %k3
1124 ; SKX-NEXT: kandd %k3, %k0, %k0
1125 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k7
1126 ; SKX-NEXT: kshiftld $31, %k7, %k7
1127 ; SKX-NEXT: kshiftrd $16, %k7, %k7
1128 ; SKX-NEXT: kord %k7, %k0, %k7
1129 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k0
1130 ; SKX-NEXT: movl $-65537, %edi ## imm = 0xFFFEFFFF
1131 ; SKX-NEXT: kmovd %edi, %k2
1132 ; SKX-NEXT: kandd %k2, %k7, %k7
1133 ; SKX-NEXT: kshiftld $31, %k0, %k0
1134 ; SKX-NEXT: kshiftrd $15, %k0, %k0
1135 ; SKX-NEXT: kord %k0, %k7, %k0
1136 ; SKX-NEXT: kmovd %k0, {{[-0-9]+}}(%r{{[sb]}}p) ## 4-byte Spill
1137 ; SKX-NEXT: kmovd %esi, %k0
1138 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 4-byte Reload
1139 ; SKX-NEXT: kandd %k1, %k0, %k0
1140 ; SKX-NEXT: kmovd %edx, %k7
1141 ; SKX-NEXT: kshiftld $31, %k7, %k7
1142 ; SKX-NEXT: kshiftrd $30, %k7, %k7
1143 ; SKX-NEXT: kord %k7, %k0, %k0
1144 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 4-byte Reload
1145 ; SKX-NEXT: kandd %k1, %k0, %k0
1146 ; SKX-NEXT: kmovd %ecx, %k7
1147 ; SKX-NEXT: kshiftld $31, %k7, %k7
1148 ; SKX-NEXT: kshiftrd $29, %k7, %k7
1149 ; SKX-NEXT: kord %k7, %k0, %k0
1150 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 4-byte Reload
1151 ; SKX-NEXT: kandd %k1, %k0, %k0
1152 ; SKX-NEXT: kmovd %r8d, %k7
1153 ; SKX-NEXT: kshiftld $31, %k7, %k7
1154 ; SKX-NEXT: kshiftrd $28, %k7, %k7
1155 ; SKX-NEXT: kord %k7, %k0, %k0
1156 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 4-byte Reload
1157 ; SKX-NEXT: kandd %k1, %k0, %k0
1158 ; SKX-NEXT: kmovd %r9d, %k7
1159 ; SKX-NEXT: kshiftld $31, %k7, %k7
1160 ; SKX-NEXT: kshiftrd $27, %k7, %k7
1161 ; SKX-NEXT: kord %k7, %k0, %k0
1162 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k7
1163 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 4-byte Reload
1164 ; SKX-NEXT: kandd %k1, %k0, %k1
1165 ; SKX-NEXT: kshiftld $31, %k7, %k7
1166 ; SKX-NEXT: kshiftrd $26, %k7, %k7
1167 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k0
1168 ; SKX-NEXT: kord %k7, %k1, %k1
1169 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k7 ## 4-byte Reload
1170 ; SKX-NEXT: kandd %k7, %k1, %k1
1171 ; SKX-NEXT: kshiftld $31, %k0, %k0
1172 ; SKX-NEXT: kshiftrd $25, %k0, %k0
1173 ; SKX-NEXT: kord %k0, %k1, %k0
1174 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 4-byte Reload
1175 ; SKX-NEXT: kandd %k1, %k0, %k0
1176 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1177 ; SKX-NEXT: kshiftld $31, %k1, %k1
1178 ; SKX-NEXT: kshiftrd $24, %k1, %k1
1179 ; SKX-NEXT: kord %k1, %k0, %k0
1180 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 4-byte Reload
1181 ; SKX-NEXT: kandd %k1, %k0, %k0
1182 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1183 ; SKX-NEXT: kshiftld $31, %k1, %k1
1184 ; SKX-NEXT: kshiftrd $23, %k1, %k1
1185 ; SKX-NEXT: kord %k1, %k0, %k0
1186 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 4-byte Reload
1187 ; SKX-NEXT: kandd %k1, %k0, %k0
1188 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1189 ; SKX-NEXT: kshiftld $31, %k1, %k1
1190 ; SKX-NEXT: kshiftrd $22, %k1, %k1
1191 ; SKX-NEXT: kord %k1, %k0, %k0
1192 ; SKX-NEXT: kandd %k6, %k0, %k0
1193 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1194 ; SKX-NEXT: kshiftld $31, %k1, %k1
1195 ; SKX-NEXT: kshiftrd $21, %k1, %k1
1196 ; SKX-NEXT: kord %k1, %k0, %k0
1197 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1198 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k6 ## 4-byte Reload
1199 ; SKX-NEXT: kandd %k6, %k0, %k0
1200 ; SKX-NEXT: kshiftld $31, %k1, %k1
1201 ; SKX-NEXT: kshiftrd $20, %k1, %k1
1202 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k6
1203 ; SKX-NEXT: kord %k1, %k0, %k0
1204 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 4-byte Reload
1205 ; SKX-NEXT: kandd %k1, %k0, %k0
1206 ; SKX-NEXT: kshiftld $31, %k6, %k1
1207 ; SKX-NEXT: kshiftrd $19, %k1, %k1
1208 ; SKX-NEXT: kord %k1, %k0, %k0
1209 ; SKX-NEXT: kandd %k4, %k0, %k0
1210 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1211 ; SKX-NEXT: kshiftld $31, %k1, %k1
1212 ; SKX-NEXT: kshiftrd $18, %k1, %k1
1213 ; SKX-NEXT: kord %k1, %k0, %k0
1214 ; SKX-NEXT: kandd %k5, %k0, %k0
1215 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1216 ; SKX-NEXT: kshiftld $31, %k1, %k1
1217 ; SKX-NEXT: kshiftrd $17, %k1, %k1
1218 ; SKX-NEXT: kord %k1, %k0, %k0
1219 ; SKX-NEXT: kandd %k3, %k0, %k0
1220 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1221 ; SKX-NEXT: kshiftld $31, %k1, %k1
1222 ; SKX-NEXT: kshiftrd $16, %k1, %k1
1223 ; SKX-NEXT: kord %k1, %k0, %k0
1224 ; SKX-NEXT: kandd %k2, %k0, %k0
1225 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
1226 ; SKX-NEXT: kshiftld $31, %k1, %k1
1227 ; SKX-NEXT: kshiftrd $15, %k1, %k1
1228 ; SKX-NEXT: kord %k1, %k0, %k0
1229 ; SKX-NEXT: kmovd {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 4-byte Reload
1230 ; SKX-NEXT: kandd %k1, %k0, %k0
1231 ; SKX-NEXT: kshiftrd $16, %k0, %k1
1232 ; SKX-NEXT: kmovd %k1, %r8d
1233 ; SKX-NEXT: kshiftrd $1, %k0, %k1
1234 ; SKX-NEXT: kmovd %k1, %r9d
1235 ; SKX-NEXT: kshiftrd $2, %k0, %k1
1236 ; SKX-NEXT: kmovd %k1, %r10d
1237 ; SKX-NEXT: kshiftrd $3, %k0, %k1
1238 ; SKX-NEXT: kmovd %k1, %r11d
1239 ; SKX-NEXT: kshiftrd $4, %k0, %k1
1240 ; SKX-NEXT: kmovd %k1, %r12d
1241 ; SKX-NEXT: kshiftrd $5, %k0, %k1
1242 ; SKX-NEXT: kmovd %k1, %r15d
1243 ; SKX-NEXT: kshiftrd $6, %k0, %k1
1244 ; SKX-NEXT: kmovd %k1, %r14d
1245 ; SKX-NEXT: kshiftrd $7, %k0, %k1
1246 ; SKX-NEXT: kmovd %k1, %r13d
1247 ; SKX-NEXT: kshiftrd $8, %k0, %k1
1248 ; SKX-NEXT: kmovd %k1, %ebx
1249 ; SKX-NEXT: kshiftrd $9, %k0, %k1
1250 ; SKX-NEXT: kmovd %k1, %esi
1251 ; SKX-NEXT: kshiftrd $10, %k0, %k1
1252 ; SKX-NEXT: kmovd %k1, %ebp
1253 ; SKX-NEXT: kshiftrd $11, %k0, %k1
1254 ; SKX-NEXT: kmovd %k1, %ecx
1255 ; SKX-NEXT: kshiftrd $12, %k0, %k1
1256 ; SKX-NEXT: kmovd %k1, %edx
1257 ; SKX-NEXT: kshiftrd $13, %k0, %k1
1258 ; SKX-NEXT: kmovd %k1, %edi
1259 ; SKX-NEXT: kshiftrd $14, %k0, %k1
1260 ; SKX-NEXT: andl $1, %r8d
1261 ; SKX-NEXT: movb %r8b, 2(%rax)
1262 ; SKX-NEXT: kmovd %k0, %r8d
1263 ; SKX-NEXT: andl $1, %r8d
1264 ; SKX-NEXT: andl $1, %r9d
1265 ; SKX-NEXT: leal (%r8,%r9,2), %r8d
1266 ; SKX-NEXT: kmovd %k1, %r9d
1267 ; SKX-NEXT: kshiftrd $15, %k0, %k0
1268 ; SKX-NEXT: andl $1, %r10d
1269 ; SKX-NEXT: leal (%r8,%r10,4), %r8d
1270 ; SKX-NEXT: kmovd %k0, %r10d
1271 ; SKX-NEXT: andl $1, %r11d
1272 ; SKX-NEXT: leal (%r8,%r11,8), %r8d
1273 ; SKX-NEXT: andl $1, %r12d
1274 ; SKX-NEXT: shll $4, %r12d
1275 ; SKX-NEXT: orl %r8d, %r12d
1276 ; SKX-NEXT: andl $1, %r15d
1277 ; SKX-NEXT: shll $5, %r15d
1278 ; SKX-NEXT: orl %r12d, %r15d
1279 ; SKX-NEXT: andl $1, %r14d
1280 ; SKX-NEXT: shll $6, %r14d
1281 ; SKX-NEXT: andl $1, %r13d
1282 ; SKX-NEXT: shll $7, %r13d
1283 ; SKX-NEXT: orl %r14d, %r13d
1284 ; SKX-NEXT: andl $1, %ebx
1285 ; SKX-NEXT: shll $8, %ebx
1286 ; SKX-NEXT: orl %r13d, %ebx
1287 ; SKX-NEXT: andl $1, %esi
1288 ; SKX-NEXT: shll $9, %esi
1289 ; SKX-NEXT: orl %ebx, %esi
1290 ; SKX-NEXT: andl $1, %ebp
1291 ; SKX-NEXT: shll $10, %ebp
1292 ; SKX-NEXT: orl %esi, %ebp
1293 ; SKX-NEXT: orl %r15d, %ebp
1294 ; SKX-NEXT: andl $1, %ecx
1295 ; SKX-NEXT: shll $11, %ecx
1296 ; SKX-NEXT: andl $1, %edx
1297 ; SKX-NEXT: shll $12, %edx
1298 ; SKX-NEXT: orl %ecx, %edx
1299 ; SKX-NEXT: andl $1, %edi
1300 ; SKX-NEXT: shll $13, %edi
1301 ; SKX-NEXT: orl %edx, %edi
1302 ; SKX-NEXT: andl $1, %r9d
1303 ; SKX-NEXT: shll $14, %r9d
1304 ; SKX-NEXT: orl %edi, %r9d
1305 ; SKX-NEXT: andl $1, %r10d
1306 ; SKX-NEXT: shll $15, %r10d
1307 ; SKX-NEXT: orl %r9d, %r10d
1308 ; SKX-NEXT: orl %ebp, %r10d
1309 ; SKX-NEXT: movw %r10w, (%rax)
1310 ; SKX-NEXT: popq %rbx
1311 ; SKX-NEXT: popq %r12
1312 ; SKX-NEXT: popq %r13
1313 ; SKX-NEXT: popq %r14
1314 ; SKX-NEXT: popq %r15
1315 ; SKX-NEXT: popq %rbp
1316 ; SKX-NEXT: retq
2378 ; SKX-LABEL: test17:
2379 ; SKX: ## %bb.0:
2380 ; SKX-NEXT: movq %rdi, %rax
2381 ; SKX-NEXT: movb $-3, %dil
2382 ; SKX-NEXT: kmovd %edi, %k1
2383 ; SKX-NEXT: kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2384 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k0
2385 ; SKX-NEXT: kandb %k1, %k0, %k0
2386 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2387 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2388 ; SKX-NEXT: kshiftrb $6, %k1, %k1
2389 ; SKX-NEXT: korb %k1, %k0, %k0
2390 ; SKX-NEXT: movb $-5, %dil
2391 ; SKX-NEXT: kmovd %edi, %k1
2392 ; SKX-NEXT: kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2393 ; SKX-NEXT: kandb %k1, %k0, %k0
2394 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2395 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2396 ; SKX-NEXT: kshiftrb $5, %k2, %k2
2397 ; SKX-NEXT: korb %k2, %k0, %k0
2398 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k3
2399 ; SKX-NEXT: movb $-9, %dil
2400 ; SKX-NEXT: kmovd %edi, %k7
2401 ; SKX-NEXT: kandb %k7, %k0, %k0
2402 ; SKX-NEXT: kshiftlb $7, %k3, %k3
2403 ; SKX-NEXT: kshiftrb $4, %k3, %k3
2404 ; SKX-NEXT: korb %k3, %k0, %k0
2405 ; SKX-NEXT: movb $-17, %dil
2406 ; SKX-NEXT: kmovd %edi, %k1
2407 ; SKX-NEXT: kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2408 ; SKX-NEXT: kandb %k1, %k0, %k0
2409 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k4
2410 ; SKX-NEXT: kshiftlb $7, %k4, %k4
2411 ; SKX-NEXT: kshiftrb $3, %k4, %k4
2412 ; SKX-NEXT: korb %k4, %k0, %k0
2413 ; SKX-NEXT: movb $-33, %dil
2414 ; SKX-NEXT: kmovd %edi, %k4
2415 ; SKX-NEXT: kandb %k4, %k0, %k0
2416 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k5
2417 ; SKX-NEXT: kshiftlb $7, %k5, %k5
2418 ; SKX-NEXT: kshiftrb $2, %k5, %k5
2419 ; SKX-NEXT: korb %k5, %k0, %k0
2420 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k6
2421 ; SKX-NEXT: movb $-65, %dil
2422 ; SKX-NEXT: kmovd %edi, %k5
2423 ; SKX-NEXT: kandb %k5, %k0, %k1
2424 ; SKX-NEXT: kshiftlb $7, %k6, %k6
2425 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k0
2426 ; SKX-NEXT: kshiftrb $1, %k6, %k6
2427 ; SKX-NEXT: korb %k6, %k1, %k1
2428 ; SKX-NEXT: kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2429 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 ## 2-byte Reload
2430 ; SKX-NEXT: kandb %k6, %k0, %k0
2431 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2432 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2433 ; SKX-NEXT: kshiftrb $6, %k1, %k1
2434 ; SKX-NEXT: korb %k1, %k0, %k0
2435 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2436 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 ## 2-byte Reload
2437 ; SKX-NEXT: kandb %k3, %k0, %k2
2438 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2439 ; SKX-NEXT: kshiftrb $5, %k1, %k1
2440 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k0
2441 ; SKX-NEXT: korb %k1, %k2, %k1
2442 ; SKX-NEXT: kandb %k7, %k1, %k1
2443 ; SKX-NEXT: kshiftlb $7, %k0, %k0
2444 ; SKX-NEXT: kshiftrb $4, %k0, %k0
2445 ; SKX-NEXT: korb %k0, %k1, %k0
2446 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 ## 2-byte Reload
2447 ; SKX-NEXT: kandb %k2, %k0, %k0
2448 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2449 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2450 ; SKX-NEXT: kshiftrb $3, %k1, %k1
2451 ; SKX-NEXT: korb %k1, %k0, %k0
2452 ; SKX-NEXT: kandb %k4, %k0, %k0
2453 ; SKX-NEXT: kmovw %k4, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2454 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2455 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2456 ; SKX-NEXT: kshiftrb $2, %k1, %k1
2457 ; SKX-NEXT: korb %k1, %k0, %k0
2458 ; SKX-NEXT: kandb %k5, %k0, %k0
2459 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2460 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2461 ; SKX-NEXT: kshiftrb $1, %k1, %k1
2462 ; SKX-NEXT: korb %k1, %k0, %k0
2463 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 2-byte Reload
2464 ; SKX-NEXT: kandb %k1, %k0, %k0
2465 ; SKX-NEXT: kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2466 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k0
2467 ; SKX-NEXT: kandb %k6, %k0, %k0
2468 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2469 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2470 ; SKX-NEXT: kshiftrb $6, %k1, %k1
2471 ; SKX-NEXT: korb %k1, %k0, %k0
2472 ; SKX-NEXT: kandb %k3, %k0, %k0
2473 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2474 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2475 ; SKX-NEXT: kshiftrb $5, %k1, %k1
2476 ; SKX-NEXT: korb %k1, %k0, %k0
2477 ; SKX-NEXT: kandb %k7, %k0, %k0
2478 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2479 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2480 ; SKX-NEXT: kshiftrb $4, %k1, %k1
2481 ; SKX-NEXT: korb %k1, %k0, %k0
2482 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2483 ; SKX-NEXT: kmovq %k2, %k3
2484 ; SKX-NEXT: kandb %k2, %k0, %k0
2485 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2486 ; SKX-NEXT: kshiftrb $3, %k1, %k1
2487 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2488 ; SKX-NEXT: korb %k1, %k0, %k0
2489 ; SKX-NEXT: kandb %k4, %k0, %k0
2490 ; SKX-NEXT: kshiftlb $7, %k2, %k1
2491 ; SKX-NEXT: kshiftrb $2, %k1, %k1
2492 ; SKX-NEXT: korb %k1, %k0, %k0
2493 ; SKX-NEXT: kandb %k5, %k0, %k0
2494 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2495 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2496 ; SKX-NEXT: kshiftrb $1, %k1, %k1
2497 ; SKX-NEXT: korb %k1, %k0, %k0
2498 ; SKX-NEXT: kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2499 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2500 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2501 ; SKX-NEXT: kmovq %k6, %k0
2502 ; SKX-NEXT: kandb %k6, %k1, %k1
2503 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2504 ; SKX-NEXT: kshiftrb $6, %k2, %k2
2505 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k6
2506 ; SKX-NEXT: korb %k2, %k1, %k1
2507 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 ## 2-byte Reload
2508 ; SKX-NEXT: kandb %k4, %k1, %k1
2509 ; SKX-NEXT: kshiftlb $7, %k6, %k2
2510 ; SKX-NEXT: kshiftrb $5, %k2, %k2
2511 ; SKX-NEXT: korb %k2, %k1, %k1
2512 ; SKX-NEXT: kandb %k7, %k1, %k1
2513 ; SKX-NEXT: kmovw %k7, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2514 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2515 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2516 ; SKX-NEXT: kshiftrb $4, %k2, %k2
2517 ; SKX-NEXT: korb %k2, %k1, %k1
2518 ; SKX-NEXT: kandb %k3, %k1, %k1
2519 ; SKX-NEXT: kmovq %k3, %k6
2520 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2521 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2522 ; SKX-NEXT: kshiftrb $3, %k2, %k2
2523 ; SKX-NEXT: korb %k2, %k1, %k1
2524 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 ## 2-byte Reload
2525 ; SKX-NEXT: kandb %k2, %k1, %k1
2526 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2527 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2528 ; SKX-NEXT: kshiftrb $2, %k2, %k2
2529 ; SKX-NEXT: korb %k2, %k1, %k1
2530 ; SKX-NEXT: kandb %k5, %k1, %k1
2531 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2532 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2533 ; SKX-NEXT: kshiftrb $1, %k2, %k2
2534 ; SKX-NEXT: korb %k2, %k1, %k1
2535 ; SKX-NEXT: kmovw %k1, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2536 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2537 ; SKX-NEXT: kandb %k0, %k1, %k1
2538 ; SKX-NEXT: kmovq %k0, %k3
2539 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2540 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2541 ; SKX-NEXT: kshiftrb $6, %k2, %k2
2542 ; SKX-NEXT: korb %k2, %k1, %k1
2543 ; SKX-NEXT: kandb %k4, %k1, %k1
2544 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2545 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2546 ; SKX-NEXT: kshiftrb $5, %k2, %k2
2547 ; SKX-NEXT: korb %k2, %k1, %k1
2548 ; SKX-NEXT: kandb %k7, %k1, %k1
2549 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2550 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2551 ; SKX-NEXT: kshiftrb $4, %k2, %k2
2552 ; SKX-NEXT: korb %k2, %k1, %k1
2553 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2554 ; SKX-NEXT: kandb %k6, %k1, %k1
2555 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2556 ; SKX-NEXT: kshiftrb $3, %k2, %k2
2557 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k0
2558 ; SKX-NEXT: korb %k2, %k1, %k1
2559 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 ## 2-byte Reload
2560 ; SKX-NEXT: kandb %k7, %k1, %k1
2561 ; SKX-NEXT: kshiftlb $7, %k0, %k0
2562 ; SKX-NEXT: kshiftrb $2, %k0, %k0
2563 ; SKX-NEXT: korb %k0, %k1, %k0
2564 ; SKX-NEXT: kandb %k5, %k0, %k0
2565 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2566 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2567 ; SKX-NEXT: kshiftrb $1, %k1, %k1
2568 ; SKX-NEXT: korb %k1, %k0, %k0
2569 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 2-byte Reload
2570 ; SKX-NEXT: kandb %k1, %k0, %k0
2571 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 2-byte Reload
2572 ; SKX-NEXT: kandb %k1, %k0, %k0
2573 ; SKX-NEXT: kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2574 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k0
2575 ; SKX-NEXT: kandb %k3, %k0, %k0
2576 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2577 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2578 ; SKX-NEXT: kshiftrb $6, %k1, %k1
2579 ; SKX-NEXT: korb %k1, %k0, %k0
2580 ; SKX-NEXT: kandb %k4, %k0, %k0
2581 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2582 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2583 ; SKX-NEXT: kshiftrb $5, %k1, %k1
2584 ; SKX-NEXT: korb %k1, %k0, %k0
2585 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 ## 2-byte Reload
2586 ; SKX-NEXT: kandb %k4, %k0, %k0
2587 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2588 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2589 ; SKX-NEXT: kshiftrb $4, %k1, %k1
2590 ; SKX-NEXT: korb %k1, %k0, %k0
2591 ; SKX-NEXT: kandb %k6, %k0, %k0
2592 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2593 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2594 ; SKX-NEXT: kshiftrb $3, %k1, %k1
2595 ; SKX-NEXT: korb %k1, %k0, %k0
2596 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2597 ; SKX-NEXT: kandb %k7, %k0, %k0
2598 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2599 ; SKX-NEXT: kshiftrb $2, %k1, %k1
2600 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2601 ; SKX-NEXT: korb %k1, %k0, %k0
2602 ; SKX-NEXT: kmovw %k5, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2603 ; SKX-NEXT: kandb %k5, %k0, %k0
2604 ; SKX-NEXT: kshiftlb $7, %k2, %k1
2605 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2606 ; SKX-NEXT: kshiftrb $1, %k1, %k1
2607 ; SKX-NEXT: korb %k1, %k0, %k0
2608 ; SKX-NEXT: kandb %k3, %k2, %k1
2609 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2610 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2611 ; SKX-NEXT: kshiftrb $6, %k2, %k2
2612 ; SKX-NEXT: korb %k2, %k1, %k1
2613 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2614 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 ## 2-byte Reload
2615 ; SKX-NEXT: kandb %k6, %k1, %k1
2616 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2617 ; SKX-NEXT: kshiftrb $5, %k2, %k2
2618 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k6
2619 ; SKX-NEXT: korb %k2, %k1, %k1
2620 ; SKX-NEXT: kandb %k4, %k1, %k1
2621 ; SKX-NEXT: kshiftlb $7, %k6, %k2
2622 ; SKX-NEXT: kshiftrb $4, %k2, %k2
2623 ; SKX-NEXT: korb %k2, %k1, %k1
2624 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k6 ## 2-byte Reload
2625 ; SKX-NEXT: kandb %k6, %k1, %k1
2626 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2627 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2628 ; SKX-NEXT: kshiftrb $3, %k2, %k2
2629 ; SKX-NEXT: korb %k2, %k1, %k1
2630 ; SKX-NEXT: kandb %k7, %k1, %k1
2631 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2632 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2633 ; SKX-NEXT: kshiftrb $2, %k2, %k2
2634 ; SKX-NEXT: korb %k2, %k1, %k1
2635 ; SKX-NEXT: kandb %k5, %k1, %k1
2636 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2637 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2638 ; SKX-NEXT: kshiftrb $1, %k2, %k2
2639 ; SKX-NEXT: korb %k2, %k1, %k1
2640 ; SKX-NEXT: kandb %k0, %k1, %k0
2641 ; SKX-NEXT: kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
2642 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k0
2643 ; SKX-NEXT: kandb %k3, %k0, %k0
2644 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2645 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2646 ; SKX-NEXT: kshiftrb $6, %k1, %k1
2647 ; SKX-NEXT: korb %k1, %k0, %k0
2648 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k3 ## 2-byte Reload
2649 ; SKX-NEXT: kandb %k3, %k0, %k0
2650 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2651 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2652 ; SKX-NEXT: kshiftrb $5, %k1, %k1
2653 ; SKX-NEXT: korb %k1, %k0, %k0
2654 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k5 ## 2-byte Reload
2655 ; SKX-NEXT: kandb %k5, %k0, %k0
2656 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2657 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2658 ; SKX-NEXT: kshiftrb $4, %k1, %k1
2659 ; SKX-NEXT: korb %k1, %k0, %k0
2660 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2661 ; SKX-NEXT: kandb %k6, %k0, %k0
2662 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2663 ; SKX-NEXT: kshiftrb $3, %k1, %k1
2664 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2665 ; SKX-NEXT: korb %k1, %k0, %k0
2666 ; SKX-NEXT: kandb %k7, %k0, %k0
2667 ; SKX-NEXT: kshiftlb $7, %k2, %k1
2668 ; SKX-NEXT: kshiftrb $2, %k1, %k1
2669 ; SKX-NEXT: korb %k1, %k0, %k0
2670 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k4 ## 2-byte Reload
2671 ; SKX-NEXT: kandb %k4, %k0, %k0
2672 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k1
2673 ; SKX-NEXT: kshiftlb $7, %k1, %k1
2674 ; SKX-NEXT: kshiftrb $1, %k1, %k1
2675 ; SKX-NEXT: korb %k1, %k0, %k0
2676 ; SKX-NEXT: kmovd %esi, %k1
2677 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 ## 2-byte Reload
2678 ; SKX-NEXT: kandb %k2, %k1, %k1
2679 ; SKX-NEXT: kmovd %edx, %k2
2680 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2681 ; SKX-NEXT: kshiftrb $6, %k2, %k2
2682 ; SKX-NEXT: korb %k2, %k1, %k1
2683 ; SKX-NEXT: kandb %k3, %k1, %k1
2684 ; SKX-NEXT: kmovd %ecx, %k2
2685 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2686 ; SKX-NEXT: kshiftrb $5, %k2, %k2
2687 ; SKX-NEXT: korb %k2, %k1, %k1
2688 ; SKX-NEXT: kandb %k5, %k1, %k1
2689 ; SKX-NEXT: kmovd %r8d, %k2
2690 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2691 ; SKX-NEXT: kshiftrb $4, %k2, %k2
2692 ; SKX-NEXT: korb %k2, %k1, %k1
2693 ; SKX-NEXT: kandb %k6, %k1, %k1
2694 ; SKX-NEXT: kmovd %r9d, %k2
2695 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2696 ; SKX-NEXT: kshiftrb $3, %k2, %k2
2697 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k3
2698 ; SKX-NEXT: korb %k2, %k1, %k1
2699 ; SKX-NEXT: kandb %k7, %k1, %k1
2700 ; SKX-NEXT: kshiftlb $7, %k3, %k2
2701 ; SKX-NEXT: kshiftrb $2, %k2, %k2
2702 ; SKX-NEXT: korb %k2, %k1, %k1
2703 ; SKX-NEXT: kandb %k4, %k1, %k1
2704 ; SKX-NEXT: kmovb {{[0-9]+}}(%rsp), %k2
2705 ; SKX-NEXT: kshiftlb $7, %k2, %k2
2706 ; SKX-NEXT: kshiftrb $1, %k2, %k2
2707 ; SKX-NEXT: korb %k2, %k1, %k1
2708 ; SKX-NEXT: kandb %k0, %k1, %k0
2709 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 2-byte Reload
2710 ; SKX-NEXT: kandb %k1, %k0, %k0
2711 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 2-byte Reload
2712 ; SKX-NEXT: kandb %k1, %k0, %k0
2713 ; SKX-NEXT: kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 2-byte Reload
2714 ; SKX-NEXT: kandb %k1, %k0, %k0
2715 ; SKX-NEXT: kshiftrb $6, %k0, %k1
2716 ; SKX-NEXT: kmovd %k1, %r8d
2717 ; SKX-NEXT: kshiftrb $5, %k0, %k1
2718 ; SKX-NEXT: kmovd %k1, %r9d
2719 ; SKX-NEXT: kshiftrb $4, %k0, %k1
2720 ; SKX-NEXT: kmovd %k1, %r10d
2721 ; SKX-NEXT: kshiftrb $3, %k0, %k1
2722 ; SKX-NEXT: kmovd %k1, %edi
2723 ; SKX-NEXT: kshiftrb $2, %k0, %k1
2724 ; SKX-NEXT: kmovd %k1, %ecx
2725 ; SKX-NEXT: kshiftrb $1, %k0, %k1
2726 ; SKX-NEXT: kmovd %k1, %edx
2727 ; SKX-NEXT: kmovd %k0, %esi
2728 ; SKX-NEXT: andb $1, %sil
2729 ; SKX-NEXT: andb $1, %dl
2730 ; SKX-NEXT: addb %dl, %dl
2731 ; SKX-NEXT: orb %sil, %dl
2732 ; SKX-NEXT: andb $1, %cl
2733 ; SKX-NEXT: shlb $2, %cl
2734 ; SKX-NEXT: orb %dl, %cl
2735 ; SKX-NEXT: andb $1, %dil
2736 ; SKX-NEXT: shlb $3, %dil
2737 ; SKX-NEXT: orb %cl, %dil
2738 ; SKX-NEXT: andb $1, %r10b
2739 ; SKX-NEXT: shlb $4, %r10b
2740 ; SKX-NEXT: orb %dil, %r10b
2741 ; SKX-NEXT: andb $1, %r9b
2742 ; SKX-NEXT: shlb $5, %r9b
2743 ; SKX-NEXT: orb %r10b, %r9b
2744 ; SKX-NEXT: shlb $6, %r8b
2745 ; SKX-NEXT: orb %r9b, %r8b
2746 ; SKX-NEXT: andb $127, %r8b
2747 ; SKX-NEXT: movb %r8b, (%rax)
2748 ; SKX-NEXT: retq
3567 ; SKX-LABEL: v2i1_mem:
3568 ; SKX: ## %bb.0:
3569 ; SKX-NEXT: subq $24, %rsp
3570 ; SKX-NEXT: .cfi_def_cfa_offset 32
3571 ; SKX-NEXT: vmovaps {{[0-9]+}}(%rsp), %xmm8
3572 ; SKX-NEXT: vmovaps %xmm8, (%rsp)
3573 ; SKX-NEXT: callq _v2i1_mem_callee
3574 ; SKX-NEXT: addq $24, %rsp
3575 ; SKX-NEXT: vzeroupper
3576 ; SKX-NEXT: retq
3630 ; SKX-LABEL: v4i1_mem:
3631 ; SKX: ## %bb.0:
3632 ; SKX-NEXT: subq $24, %rsp
3633 ; SKX-NEXT: .cfi_def_cfa_offset 32
3634 ; SKX-NEXT: vmovaps {{[0-9]+}}(%rsp), %xmm8
3635 ; SKX-NEXT: vmovaps %xmm8, (%rsp)
3636 ; SKX-NEXT: callq _v4i1_mem_callee
3637 ; SKX-NEXT: addq $24, %rsp
3638 ; SKX-NEXT: vzeroupper
3639 ; SKX-NEXT: retq
3693 ; SKX-LABEL: v8i1_mem:
3694 ; SKX: ## %bb.0:
3695 ; SKX-NEXT: subq $24, %rsp
3696 ; SKX-NEXT: .cfi_def_cfa_offset 32
3697 ; SKX-NEXT: vmovaps {{[0-9]+}}(%rsp), %xmm8
3698 ; SKX-NEXT: vmovaps %xmm8, (%rsp)
3699 ; SKX-NEXT: callq _v8i1_mem_callee
3700 ; SKX-NEXT: addq $24, %rsp
3701 ; SKX-NEXT: vzeroupper
3702 ; SKX-NEXT: retq
3756 ; SKX-LABEL: v16i1_mem:
3757 ; SKX: ## %bb.0:
3758 ; SKX-NEXT: subq $24, %rsp
3759 ; SKX-NEXT: .cfi_def_cfa_offset 32
3760 ; SKX-NEXT: vmovaps {{[0-9]+}}(%rsp), %xmm8
3761 ; SKX-NEXT: vmovaps %xmm8, (%rsp)
3762 ; SKX-NEXT: callq _v16i1_mem_callee
3763 ; SKX-NEXT: addq $24, %rsp
3764 ; SKX-NEXT: vzeroupper
3765 ; SKX-NEXT: retq
3825 ; SKX-LABEL: v32i1_mem:
3826 ; SKX: ## %bb.0:
3827 ; SKX-NEXT: pushq %rbp
3828 ; SKX-NEXT: .cfi_def_cfa_offset 16
3829 ; SKX-NEXT: .cfi_offset %rbp, -16
3830 ; SKX-NEXT: movq %rsp, %rbp
3831 ; SKX-NEXT: .cfi_def_cfa_register %rbp
3832 ; SKX-NEXT: andq $-32, %rsp
3833 ; SKX-NEXT: subq $64, %rsp
3834 ; SKX-NEXT: vmovaps 16(%rbp), %ymm8
3835 ; SKX-NEXT: vmovaps %ymm8, (%rsp)
3836 ; SKX-NEXT: callq _v32i1_mem_callee
3837 ; SKX-NEXT: movq %rbp, %rsp
3838 ; SKX-NEXT: popq %rbp
3839 ; SKX-NEXT: vzeroupper
3840 ; SKX-NEXT: retq
4014 ; SKX-LABEL: v64i1_mem:
4015 ; SKX: ## %bb.0:
4016 ; SKX-NEXT: pushq %rbp
4017 ; SKX-NEXT: .cfi_def_cfa_offset 16
4018 ; SKX-NEXT: .cfi_offset %rbp, -16
4019 ; SKX-NEXT: movq %rsp, %rbp
4020 ; SKX-NEXT: .cfi_def_cfa_register %rbp
4021 ; SKX-NEXT: andq $-64, %rsp
4022 ; SKX-NEXT: subq $128, %rsp
4023 ; SKX-NEXT: vmovaps 16(%rbp), %zmm8
4024 ; SKX-NEXT: vmovaps %zmm8, (%rsp)
4025 ; SKX-NEXT: callq _v64i1_mem_callee
4026 ; SKX-NEXT: movq %rbp, %rsp
4027 ; SKX-NEXT: popq %rbp
4028 ; SKX-NEXT: vzeroupper
4029 ; SKX-NEXT: retq