Lines Matching refs:SSE2
2 …known-unknown -mattr=+sse2 | FileCheck %s --check-prefix=ALL --check-prefix=SSE --check-prefix=SSE2
1022 ; SSE2-LABEL: test_bitreverse_v16i8:
1023 ; SSE2: # BB#0:
1024 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1025 ; SSE2-NEXT: psrlw $7, %xmm2
1026 ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
1027 ; SSE2-NEXT: pand %xmm1, %xmm1
1028 ; SSE2-NEXT: pand %xmm2, %xmm1
1029 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1030 ; SSE2-NEXT: psllw $7, %xmm2
1031 ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128…
1032 ; SSE2-NEXT: pand %xmm3, %xmm3
1033 ; SSE2-NEXT: pand %xmm3, %xmm2
1034 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1035 ; SSE2-NEXT: psllw $5, %xmm3
1036 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1037 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1038 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1039 ; SSE2-NEXT: psllw $3, %xmm4
1040 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm4
1041 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm4
1042 ; SSE2-NEXT: por %xmm3, %xmm4
1043 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1044 ; SSE2-NEXT: paddb %xmm3, %xmm3
1045 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1046 ; SSE2-NEXT: por %xmm4, %xmm3
1047 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1048 ; SSE2-NEXT: psrlw $1, %xmm4
1049 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm4
1050 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm4
1051 ; SSE2-NEXT: por %xmm3, %xmm4
1052 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1053 ; SSE2-NEXT: psrlw $3, %xmm3
1054 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1055 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1056 ; SSE2-NEXT: por %xmm4, %xmm3
1057 ; SSE2-NEXT: psrlw $5, %xmm0
1058 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1059 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1060 ; SSE2-NEXT: por %xmm3, %xmm0
1061 ; SSE2-NEXT: por %xmm1, %xmm0
1062 ; SSE2-NEXT: por %xmm2, %xmm0
1063 ; SSE2-NEXT: retq
1102 ; SSE2-LABEL: test_bitreverse_v8i16:
1103 ; SSE2: # BB#0:
1104 ; SSE2-NEXT: pxor %xmm1, %xmm1
1105 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1106 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11…
1107 ; SSE2-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,2,4,5,6,7]
1108 ; SSE2-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,4,7,6]
1109 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],x…
1110 ; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[1,0,3,2,4,5,6,7]
1111 ; SSE2-NEXT: pshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,5,4,7,6]
1112 ; SSE2-NEXT: packuswb %xmm2, %xmm1
1113 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1114 ; SSE2-NEXT: psllw $7, %xmm0
1115 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128…
1116 ; SSE2-NEXT: pand %xmm2, %xmm2
1117 ; SSE2-NEXT: pand %xmm0, %xmm2
1118 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1119 ; SSE2-NEXT: psllw $5, %xmm0
1120 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1121 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1122 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1123 ; SSE2-NEXT: psllw $3, %xmm3
1124 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1125 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1126 ; SSE2-NEXT: por %xmm0, %xmm3
1127 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1128 ; SSE2-NEXT: paddb %xmm0, %xmm0
1129 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1130 ; SSE2-NEXT: por %xmm3, %xmm0
1131 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1132 ; SSE2-NEXT: psrlw $1, %xmm3
1133 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1134 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1135 ; SSE2-NEXT: por %xmm0, %xmm3
1136 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1137 ; SSE2-NEXT: psrlw $3, %xmm0
1138 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1139 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1140 ; SSE2-NEXT: por %xmm3, %xmm0
1141 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1142 ; SSE2-NEXT: psrlw $5, %xmm3
1143 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1144 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1145 ; SSE2-NEXT: por %xmm0, %xmm3
1146 ; SSE2-NEXT: psrlw $7, %xmm1
1147 ; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
1148 ; SSE2-NEXT: pand %xmm0, %xmm0
1149 ; SSE2-NEXT: pand %xmm1, %xmm0
1150 ; SSE2-NEXT: por %xmm3, %xmm0
1151 ; SSE2-NEXT: por %xmm2, %xmm0
1152 ; SSE2-NEXT: retq
1193 ; SSE2-LABEL: test_bitreverse_v4i32:
1194 ; SSE2: # BB#0:
1195 ; SSE2-NEXT: pxor %xmm1, %xmm1
1196 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1197 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11…
1198 ; SSE2-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,2,1,0,4,5,6,7]
1199 ; SSE2-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,6,5,4]
1200 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],x…
1201 ; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,2,1,0,4,5,6,7]
1202 ; SSE2-NEXT: pshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,7,6,5,4]
1203 ; SSE2-NEXT: packuswb %xmm2, %xmm1
1204 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1205 ; SSE2-NEXT: psllw $7, %xmm0
1206 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128…
1207 ; SSE2-NEXT: pand %xmm2, %xmm2
1208 ; SSE2-NEXT: pand %xmm0, %xmm2
1209 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1210 ; SSE2-NEXT: psllw $5, %xmm0
1211 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1212 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1213 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1214 ; SSE2-NEXT: psllw $3, %xmm3
1215 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1216 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1217 ; SSE2-NEXT: por %xmm0, %xmm3
1218 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1219 ; SSE2-NEXT: paddb %xmm0, %xmm0
1220 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1221 ; SSE2-NEXT: por %xmm3, %xmm0
1222 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1223 ; SSE2-NEXT: psrlw $1, %xmm3
1224 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1225 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1226 ; SSE2-NEXT: por %xmm0, %xmm3
1227 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1228 ; SSE2-NEXT: psrlw $3, %xmm0
1229 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1230 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1231 ; SSE2-NEXT: por %xmm3, %xmm0
1232 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1233 ; SSE2-NEXT: psrlw $5, %xmm3
1234 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1235 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1236 ; SSE2-NEXT: por %xmm0, %xmm3
1237 ; SSE2-NEXT: psrlw $7, %xmm1
1238 ; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
1239 ; SSE2-NEXT: pand %xmm0, %xmm0
1240 ; SSE2-NEXT: pand %xmm1, %xmm0
1241 ; SSE2-NEXT: por %xmm3, %xmm0
1242 ; SSE2-NEXT: por %xmm2, %xmm0
1243 ; SSE2-NEXT: retq
1284 ; SSE2-LABEL: test_bitreverse_v2i64:
1285 ; SSE2: # BB#0:
1286 ; SSE2-NEXT: pxor %xmm1, %xmm1
1287 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1288 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11…
1289 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,3,0,1]
1290 ; SSE2-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,2,1,0,4,5,6,7]
1291 ; SSE2-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,6,5,4]
1292 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],x…
1293 ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
1294 ; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,2,1,0,4,5,6,7]
1295 ; SSE2-NEXT: pshufhw {{.*#+}} xmm1 = xmm0[0,1,2,3,7,6,5,4]
1296 ; SSE2-NEXT: packuswb %xmm2, %xmm1
1297 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1298 ; SSE2-NEXT: psllw $7, %xmm0
1299 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128…
1300 ; SSE2-NEXT: pand %xmm2, %xmm2
1301 ; SSE2-NEXT: pand %xmm0, %xmm2
1302 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1303 ; SSE2-NEXT: psllw $5, %xmm0
1304 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1305 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1306 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1307 ; SSE2-NEXT: psllw $3, %xmm3
1308 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1309 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1310 ; SSE2-NEXT: por %xmm0, %xmm3
1311 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1312 ; SSE2-NEXT: paddb %xmm0, %xmm0
1313 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1314 ; SSE2-NEXT: por %xmm3, %xmm0
1315 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1316 ; SSE2-NEXT: psrlw $1, %xmm3
1317 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1318 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1319 ; SSE2-NEXT: por %xmm0, %xmm3
1320 ; SSE2-NEXT: movdqa %xmm1, %xmm0
1321 ; SSE2-NEXT: psrlw $3, %xmm0
1322 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1323 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
1324 ; SSE2-NEXT: por %xmm3, %xmm0
1325 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1326 ; SSE2-NEXT: psrlw $5, %xmm3
1327 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1328 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm3
1329 ; SSE2-NEXT: por %xmm0, %xmm3
1330 ; SSE2-NEXT: psrlw $7, %xmm1
1331 ; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
1332 ; SSE2-NEXT: pand %xmm0, %xmm0
1333 ; SSE2-NEXT: pand %xmm1, %xmm0
1334 ; SSE2-NEXT: por %xmm3, %xmm0
1335 ; SSE2-NEXT: por %xmm2, %xmm0
1336 ; SSE2-NEXT: retq
1377 ; SSE2-LABEL: test_bitreverse_v32i8:
1378 ; SSE2: # BB#0:
1379 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1380 ; SSE2-NEXT: psllw $5, %xmm2
1381 ; SSE2-NEXT: movdqa {{.*#+}} xmm9 = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]
1382 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm9
1383 ; SSE2-NEXT: pand %xmm9, %xmm2
1384 ; SSE2-NEXT: movdqa %xmm0, %xmm5
1385 ; SSE2-NEXT: psllw $7, %xmm5
1386 ; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,12…
1387 ; SSE2-NEXT: pand %xmm10, %xmm10
1388 ; SSE2-NEXT: pand %xmm10, %xmm5
1389 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1390 ; SSE2-NEXT: psllw $3, %xmm3
1391 ; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]
1392 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm11
1393 ; SSE2-NEXT: pand %xmm11, %xmm3
1394 ; SSE2-NEXT: por %xmm2, %xmm3
1395 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1396 ; SSE2-NEXT: paddb %xmm2, %xmm2
1397 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
1398 ; SSE2-NEXT: pand %xmm8, %xmm2
1399 ; SSE2-NEXT: por %xmm3, %xmm2
1400 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1401 ; SSE2-NEXT: psrlw $1, %xmm3
1402 ; SSE2-NEXT: movdqa {{.*#+}} xmm12 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
1403 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm12
1404 ; SSE2-NEXT: pand %xmm12, %xmm3
1405 ; SSE2-NEXT: por %xmm2, %xmm3
1406 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1407 ; SSE2-NEXT: psrlw $3, %xmm4
1408 ; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
1409 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm6
1410 ; SSE2-NEXT: pand %xmm6, %xmm4
1411 ; SSE2-NEXT: por %xmm3, %xmm4
1412 ; SSE2-NEXT: movdqa %xmm0, %xmm7
1413 ; SSE2-NEXT: psrlw $5, %xmm7
1414 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
1415 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm2
1416 ; SSE2-NEXT: pand %xmm2, %xmm7
1417 ; SSE2-NEXT: por %xmm4, %xmm7
1418 ; SSE2-NEXT: psrlw $7, %xmm0
1419 ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
1420 ; SSE2-NEXT: pand %xmm3, %xmm3
1421 ; SSE2-NEXT: pand %xmm3, %xmm0
1422 ; SSE2-NEXT: por %xmm7, %xmm0
1423 ; SSE2-NEXT: por %xmm5, %xmm0
1424 ; SSE2-NEXT: movdqa %xmm1, %xmm4
1425 ; SSE2-NEXT: psllw $5, %xmm4
1426 ; SSE2-NEXT: pand %xmm9, %xmm4
1427 ; SSE2-NEXT: movdqa %xmm1, %xmm5
1428 ; SSE2-NEXT: psllw $7, %xmm5
1429 ; SSE2-NEXT: pand %xmm10, %xmm5
1430 ; SSE2-NEXT: movdqa %xmm1, %xmm7
1431 ; SSE2-NEXT: psllw $3, %xmm7
1432 ; SSE2-NEXT: pand %xmm11, %xmm7
1433 ; SSE2-NEXT: por %xmm4, %xmm7
1434 ; SSE2-NEXT: movdqa %xmm1, %xmm4
1435 ; SSE2-NEXT: paddb %xmm4, %xmm4
1436 ; SSE2-NEXT: pand %xmm8, %xmm4
1437 ; SSE2-NEXT: por %xmm7, %xmm4
1438 ; SSE2-NEXT: movdqa %xmm1, %xmm7
1439 ; SSE2-NEXT: psrlw $1, %xmm7
1440 ; SSE2-NEXT: pand %xmm12, %xmm7
1441 ; SSE2-NEXT: por %xmm4, %xmm7
1442 ; SSE2-NEXT: movdqa %xmm1, %xmm4
1443 ; SSE2-NEXT: psrlw $3, %xmm4
1444 ; SSE2-NEXT: pand %xmm6, %xmm4
1445 ; SSE2-NEXT: por %xmm7, %xmm4
1446 ; SSE2-NEXT: movdqa %xmm1, %xmm6
1447 ; SSE2-NEXT: psrlw $5, %xmm6
1448 ; SSE2-NEXT: pand %xmm2, %xmm6
1449 ; SSE2-NEXT: por %xmm4, %xmm6
1450 ; SSE2-NEXT: psrlw $7, %xmm1
1451 ; SSE2-NEXT: pand %xmm3, %xmm1
1452 ; SSE2-NEXT: por %xmm6, %xmm1
1453 ; SSE2-NEXT: por %xmm5, %xmm1
1454 ; SSE2-NEXT: retq
1550 ; SSE2-LABEL: test_bitreverse_v16i16:
1551 ; SSE2: # BB#0:
1552 ; SSE2-NEXT: pxor %xmm9, %xmm9
1553 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1554 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm9[8],xmm2[9],xmm9[9],xmm2[10],xmm9[10],xmm2[11…
1555 ; SSE2-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,2,4,5,6,7]
1556 ; SSE2-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,4,7,6]
1557 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1],xmm0[2],xmm9[2],xmm0[3],x…
1558 ; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[1,0,3,2,4,5,6,7]
1559 ; SSE2-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,6]
1560 ; SSE2-NEXT: packuswb %xmm2, %xmm0
1561 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1562 ; SSE2-NEXT: psllw $5, %xmm2
1563 ; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]
1564 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm10
1565 ; SSE2-NEXT: pand %xmm10, %xmm2
1566 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1567 ; SSE2-NEXT: psllw $7, %xmm3
1568 ; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,12…
1569 ; SSE2-NEXT: pand %xmm11, %xmm11
1570 ; SSE2-NEXT: pand %xmm11, %xmm3
1571 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1572 ; SSE2-NEXT: psllw $3, %xmm4
1573 ; SSE2-NEXT: movdqa {{.*#+}} xmm12 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]
1574 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm12
1575 ; SSE2-NEXT: pand %xmm12, %xmm4
1576 ; SSE2-NEXT: por %xmm2, %xmm4
1577 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1578 ; SSE2-NEXT: paddb %xmm2, %xmm2
1579 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
1580 ; SSE2-NEXT: pand %xmm8, %xmm2
1581 ; SSE2-NEXT: por %xmm4, %xmm2
1582 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1583 ; SSE2-NEXT: psrlw $1, %xmm4
1584 ; SSE2-NEXT: movdqa {{.*#+}} xmm13 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
1585 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm13
1586 ; SSE2-NEXT: pand %xmm13, %xmm4
1587 ; SSE2-NEXT: por %xmm2, %xmm4
1588 ; SSE2-NEXT: movdqa %xmm0, %xmm5
1589 ; SSE2-NEXT: psrlw $3, %xmm5
1590 ; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
1591 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm6
1592 ; SSE2-NEXT: pand %xmm6, %xmm5
1593 ; SSE2-NEXT: por %xmm4, %xmm5
1594 ; SSE2-NEXT: movdqa %xmm0, %xmm7
1595 ; SSE2-NEXT: psrlw $5, %xmm7
1596 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
1597 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm2
1598 ; SSE2-NEXT: pand %xmm2, %xmm7
1599 ; SSE2-NEXT: por %xmm5, %xmm7
1600 ; SSE2-NEXT: psrlw $7, %xmm0
1601 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
1602 ; SSE2-NEXT: pand %xmm4, %xmm4
1603 ; SSE2-NEXT: pand %xmm4, %xmm0
1604 ; SSE2-NEXT: por %xmm7, %xmm0
1605 ; SSE2-NEXT: por %xmm3, %xmm0
1606 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1607 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm3 = xmm3[8],xmm9[8],xmm3[9],xmm9[9],xmm3[10],xmm9[10],xmm3[11…
1608 ; SSE2-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[1,0,3,2,4,5,6,7]
1609 ; SSE2-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,4,7,6]
1610 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1],xmm1[2],xmm9[2],xmm1[3],x…
1611 ; SSE2-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,0,3,2,4,5,6,7]
1612 ; SSE2-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,4,7,6]
1613 ; SSE2-NEXT: packuswb %xmm3, %xmm1
1614 ; SSE2-NEXT: movdqa %xmm1, %xmm5
1615 ; SSE2-NEXT: psllw $5, %xmm5
1616 ; SSE2-NEXT: pand %xmm10, %xmm5
1617 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1618 ; SSE2-NEXT: psllw $7, %xmm3
1619 ; SSE2-NEXT: pand %xmm11, %xmm3
1620 ; SSE2-NEXT: movdqa %xmm1, %xmm7
1621 ; SSE2-NEXT: psllw $3, %xmm7
1622 ; SSE2-NEXT: pand %xmm12, %xmm7
1623 ; SSE2-NEXT: por %xmm5, %xmm7
1624 ; SSE2-NEXT: movdqa %xmm1, %xmm5
1625 ; SSE2-NEXT: paddb %xmm5, %xmm5
1626 ; SSE2-NEXT: pand %xmm8, %xmm5
1627 ; SSE2-NEXT: por %xmm7, %xmm5
1628 ; SSE2-NEXT: movdqa %xmm1, %xmm7
1629 ; SSE2-NEXT: psrlw $1, %xmm7
1630 ; SSE2-NEXT: pand %xmm13, %xmm7
1631 ; SSE2-NEXT: por %xmm5, %xmm7
1632 ; SSE2-NEXT: movdqa %xmm1, %xmm5
1633 ; SSE2-NEXT: psrlw $3, %xmm5
1634 ; SSE2-NEXT: pand %xmm6, %xmm5
1635 ; SSE2-NEXT: por %xmm7, %xmm5
1636 ; SSE2-NEXT: movdqa %xmm1, %xmm6
1637 ; SSE2-NEXT: psrlw $5, %xmm6
1638 ; SSE2-NEXT: pand %xmm2, %xmm6
1639 ; SSE2-NEXT: por %xmm5, %xmm6
1640 ; SSE2-NEXT: psrlw $7, %xmm1
1641 ; SSE2-NEXT: pand %xmm4, %xmm1
1642 ; SSE2-NEXT: por %xmm6, %xmm1
1643 ; SSE2-NEXT: por %xmm3, %xmm1
1644 ; SSE2-NEXT: retq
1748 ; SSE2-LABEL: test_bitreverse_v8i32:
1749 ; SSE2: # BB#0:
1750 ; SSE2-NEXT: pxor %xmm9, %xmm9
1751 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1752 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm9[8],xmm2[9],xmm9[9],xmm2[10],xmm9[10],xmm2[11…
1753 ; SSE2-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,2,1,0,4,5,6,7]
1754 ; SSE2-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,6,5,4]
1755 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1],xmm0[2],xmm9[2],xmm0[3],x…
1756 ; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,2,1,0,4,5,6,7]
1757 ; SSE2-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,5,4]
1758 ; SSE2-NEXT: packuswb %xmm2, %xmm0
1759 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1760 ; SSE2-NEXT: psllw $5, %xmm2
1761 ; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]
1762 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm10
1763 ; SSE2-NEXT: pand %xmm10, %xmm2
1764 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1765 ; SSE2-NEXT: psllw $7, %xmm3
1766 ; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,12…
1767 ; SSE2-NEXT: pand %xmm11, %xmm11
1768 ; SSE2-NEXT: pand %xmm11, %xmm3
1769 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1770 ; SSE2-NEXT: psllw $3, %xmm4
1771 ; SSE2-NEXT: movdqa {{.*#+}} xmm12 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]
1772 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm12
1773 ; SSE2-NEXT: pand %xmm12, %xmm4
1774 ; SSE2-NEXT: por %xmm2, %xmm4
1775 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1776 ; SSE2-NEXT: paddb %xmm2, %xmm2
1777 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
1778 ; SSE2-NEXT: pand %xmm8, %xmm2
1779 ; SSE2-NEXT: por %xmm4, %xmm2
1780 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1781 ; SSE2-NEXT: psrlw $1, %xmm4
1782 ; SSE2-NEXT: movdqa {{.*#+}} xmm13 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
1783 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm13
1784 ; SSE2-NEXT: pand %xmm13, %xmm4
1785 ; SSE2-NEXT: por %xmm2, %xmm4
1786 ; SSE2-NEXT: movdqa %xmm0, %xmm5
1787 ; SSE2-NEXT: psrlw $3, %xmm5
1788 ; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
1789 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm6
1790 ; SSE2-NEXT: pand %xmm6, %xmm5
1791 ; SSE2-NEXT: por %xmm4, %xmm5
1792 ; SSE2-NEXT: movdqa %xmm0, %xmm7
1793 ; SSE2-NEXT: psrlw $5, %xmm7
1794 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
1795 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm2
1796 ; SSE2-NEXT: pand %xmm2, %xmm7
1797 ; SSE2-NEXT: por %xmm5, %xmm7
1798 ; SSE2-NEXT: psrlw $7, %xmm0
1799 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
1800 ; SSE2-NEXT: pand %xmm4, %xmm4
1801 ; SSE2-NEXT: pand %xmm4, %xmm0
1802 ; SSE2-NEXT: por %xmm7, %xmm0
1803 ; SSE2-NEXT: por %xmm3, %xmm0
1804 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1805 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm3 = xmm3[8],xmm9[8],xmm3[9],xmm9[9],xmm3[10],xmm9[10],xmm3[11…
1806 ; SSE2-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,2,1,0,4,5,6,7]
1807 ; SSE2-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,6,5,4]
1808 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1],xmm1[2],xmm9[2],xmm1[3],x…
1809 ; SSE2-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[3,2,1,0,4,5,6,7]
1810 ; SSE2-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,6,5,4]
1811 ; SSE2-NEXT: packuswb %xmm3, %xmm1
1812 ; SSE2-NEXT: movdqa %xmm1, %xmm5
1813 ; SSE2-NEXT: psllw $5, %xmm5
1814 ; SSE2-NEXT: pand %xmm10, %xmm5
1815 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1816 ; SSE2-NEXT: psllw $7, %xmm3
1817 ; SSE2-NEXT: pand %xmm11, %xmm3
1818 ; SSE2-NEXT: movdqa %xmm1, %xmm7
1819 ; SSE2-NEXT: psllw $3, %xmm7
1820 ; SSE2-NEXT: pand %xmm12, %xmm7
1821 ; SSE2-NEXT: por %xmm5, %xmm7
1822 ; SSE2-NEXT: movdqa %xmm1, %xmm5
1823 ; SSE2-NEXT: paddb %xmm5, %xmm5
1824 ; SSE2-NEXT: pand %xmm8, %xmm5
1825 ; SSE2-NEXT: por %xmm7, %xmm5
1826 ; SSE2-NEXT: movdqa %xmm1, %xmm7
1827 ; SSE2-NEXT: psrlw $1, %xmm7
1828 ; SSE2-NEXT: pand %xmm13, %xmm7
1829 ; SSE2-NEXT: por %xmm5, %xmm7
1830 ; SSE2-NEXT: movdqa %xmm1, %xmm5
1831 ; SSE2-NEXT: psrlw $3, %xmm5
1832 ; SSE2-NEXT: pand %xmm6, %xmm5
1833 ; SSE2-NEXT: por %xmm7, %xmm5
1834 ; SSE2-NEXT: movdqa %xmm1, %xmm6
1835 ; SSE2-NEXT: psrlw $5, %xmm6
1836 ; SSE2-NEXT: pand %xmm2, %xmm6
1837 ; SSE2-NEXT: por %xmm5, %xmm6
1838 ; SSE2-NEXT: psrlw $7, %xmm1
1839 ; SSE2-NEXT: pand %xmm4, %xmm1
1840 ; SSE2-NEXT: por %xmm6, %xmm1
1841 ; SSE2-NEXT: por %xmm3, %xmm1
1842 ; SSE2-NEXT: retq
1946 ; SSE2-LABEL: test_bitreverse_v4i64:
1947 ; SSE2: # BB#0:
1948 ; SSE2-NEXT: pxor %xmm9, %xmm9
1949 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1950 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm9[8],xmm2[9],xmm9[9],xmm2[10],xmm9[10],xmm2[11…
1951 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,3,0,1]
1952 ; SSE2-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,2,1,0,4,5,6,7]
1953 ; SSE2-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,6,5,4]
1954 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1],xmm0[2],xmm9[2],xmm0[3],x…
1955 ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
1956 ; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,2,1,0,4,5,6,7]
1957 ; SSE2-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,5,4]
1958 ; SSE2-NEXT: packuswb %xmm2, %xmm0
1959 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1960 ; SSE2-NEXT: psllw $5, %xmm2
1961 ; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]
1962 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm10
1963 ; SSE2-NEXT: pand %xmm10, %xmm2
1964 ; SSE2-NEXT: movdqa %xmm0, %xmm4
1965 ; SSE2-NEXT: psllw $7, %xmm4
1966 ; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,12…
1967 ; SSE2-NEXT: pand %xmm11, %xmm11
1968 ; SSE2-NEXT: pand %xmm11, %xmm4
1969 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1970 ; SSE2-NEXT: psllw $3, %xmm3
1971 ; SSE2-NEXT: movdqa {{.*#+}} xmm12 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]
1972 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm12
1973 ; SSE2-NEXT: pand %xmm12, %xmm3
1974 ; SSE2-NEXT: por %xmm2, %xmm3
1975 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1976 ; SSE2-NEXT: paddb %xmm2, %xmm2
1977 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
1978 ; SSE2-NEXT: pand %xmm8, %xmm2
1979 ; SSE2-NEXT: por %xmm3, %xmm2
1980 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1981 ; SSE2-NEXT: psrlw $1, %xmm3
1982 ; SSE2-NEXT: movdqa {{.*#+}} xmm13 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
1983 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm13
1984 ; SSE2-NEXT: pand %xmm13, %xmm3
1985 ; SSE2-NEXT: por %xmm2, %xmm3
1986 ; SSE2-NEXT: movdqa %xmm0, %xmm5
1987 ; SSE2-NEXT: psrlw $3, %xmm5
1988 ; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
1989 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm6
1990 ; SSE2-NEXT: pand %xmm6, %xmm5
1991 ; SSE2-NEXT: por %xmm3, %xmm5
1992 ; SSE2-NEXT: movdqa %xmm0, %xmm7
1993 ; SSE2-NEXT: psrlw $5, %xmm7
1994 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
1995 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm2
1996 ; SSE2-NEXT: pand %xmm2, %xmm7
1997 ; SSE2-NEXT: por %xmm5, %xmm7
1998 ; SSE2-NEXT: psrlw $7, %xmm0
1999 ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
2000 ; SSE2-NEXT: pand %xmm3, %xmm3
2001 ; SSE2-NEXT: pand %xmm3, %xmm0
2002 ; SSE2-NEXT: por %xmm7, %xmm0
2003 ; SSE2-NEXT: por %xmm4, %xmm0
2004 ; SSE2-NEXT: movdqa %xmm1, %xmm4
2005 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
2006 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,3,0,1]
2007 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,2,1,0,4,5,6,7]
2008 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,6,5,4]
2009 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1],xmm1[2],xmm9[2],xmm1[3],x…
2010 ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,0,1]
2011 ; SSE2-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[3,2,1,0,4,5,6,7]
2012 ; SSE2-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,6,5,4]
2013 ; SSE2-NEXT: packuswb %xmm4, %xmm1
2014 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2015 ; SSE2-NEXT: psllw $5, %xmm5
2016 ; SSE2-NEXT: pand %xmm10, %xmm5
2017 ; SSE2-NEXT: movdqa %xmm1, %xmm4
2018 ; SSE2-NEXT: psllw $7, %xmm4
2019 ; SSE2-NEXT: pand %xmm11, %xmm4
2020 ; SSE2-NEXT: movdqa %xmm1, %xmm7
2021 ; SSE2-NEXT: psllw $3, %xmm7
2022 ; SSE2-NEXT: pand %xmm12, %xmm7
2023 ; SSE2-NEXT: por %xmm5, %xmm7
2024 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2025 ; SSE2-NEXT: paddb %xmm5, %xmm5
2026 ; SSE2-NEXT: pand %xmm8, %xmm5
2027 ; SSE2-NEXT: por %xmm7, %xmm5
2028 ; SSE2-NEXT: movdqa %xmm1, %xmm7
2029 ; SSE2-NEXT: psrlw $1, %xmm7
2030 ; SSE2-NEXT: pand %xmm13, %xmm7
2031 ; SSE2-NEXT: por %xmm5, %xmm7
2032 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2033 ; SSE2-NEXT: psrlw $3, %xmm5
2034 ; SSE2-NEXT: pand %xmm6, %xmm5
2035 ; SSE2-NEXT: por %xmm7, %xmm5
2036 ; SSE2-NEXT: movdqa %xmm1, %xmm6
2037 ; SSE2-NEXT: psrlw $5, %xmm6
2038 ; SSE2-NEXT: pand %xmm2, %xmm6
2039 ; SSE2-NEXT: por %xmm5, %xmm6
2040 ; SSE2-NEXT: psrlw $7, %xmm1
2041 ; SSE2-NEXT: pand %xmm3, %xmm1
2042 ; SSE2-NEXT: por %xmm6, %xmm1
2043 ; SSE2-NEXT: por %xmm4, %xmm1
2044 ; SSE2-NEXT: retq
2148 ; SSE2-LABEL: test_bitreverse_v64i8:
2149 ; SSE2: # BB#0:
2150 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2151 ; SSE2-NEXT: psllw $5, %xmm4
2152 ; SSE2-NEXT: movdqa {{.*#+}} xmm9 = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]
2153 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm9
2154 ; SSE2-NEXT: pand %xmm9, %xmm4
2155 ; SSE2-NEXT: movdqa %xmm0, %xmm7
2156 ; SSE2-NEXT: psllw $7, %xmm7
2157 ; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,12…
2158 ; SSE2-NEXT: pand %xmm10, %xmm10
2159 ; SSE2-NEXT: pand %xmm10, %xmm7
2160 ; SSE2-NEXT: movdqa %xmm0, %xmm5
2161 ; SSE2-NEXT: psllw $3, %xmm5
2162 ; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]
2163 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm11
2164 ; SSE2-NEXT: pand %xmm11, %xmm5
2165 ; SSE2-NEXT: por %xmm4, %xmm5
2166 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2167 ; SSE2-NEXT: paddb %xmm4, %xmm4
2168 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2169 ; SSE2-NEXT: pand %xmm8, %xmm4
2170 ; SSE2-NEXT: por %xmm5, %xmm4
2171 ; SSE2-NEXT: movdqa %xmm0, %xmm5
2172 ; SSE2-NEXT: psrlw $1, %xmm5
2173 ; SSE2-NEXT: movdqa {{.*#+}} xmm12 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
2174 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm12
2175 ; SSE2-NEXT: pand %xmm12, %xmm5
2176 ; SSE2-NEXT: por %xmm4, %xmm5
2177 ; SSE2-NEXT: movdqa %xmm0, %xmm6
2178 ; SSE2-NEXT: psrlw $3, %xmm6
2179 ; SSE2-NEXT: movdqa {{.*#+}} xmm13 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
2180 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm13
2181 ; SSE2-NEXT: pand %xmm13, %xmm6
2182 ; SSE2-NEXT: por %xmm5, %xmm6
2183 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2184 ; SSE2-NEXT: psrlw $5, %xmm4
2185 ; SSE2-NEXT: movdqa {{.*#+}} xmm14 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
2186 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm14
2187 ; SSE2-NEXT: pand %xmm14, %xmm4
2188 ; SSE2-NEXT: por %xmm6, %xmm4
2189 ; SSE2-NEXT: psrlw $7, %xmm0
2190 ; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
2191 ; SSE2-NEXT: pand %xmm6, %xmm6
2192 ; SSE2-NEXT: pand %xmm6, %xmm0
2193 ; SSE2-NEXT: por %xmm4, %xmm0
2194 ; SSE2-NEXT: por %xmm7, %xmm0
2195 ; SSE2-NEXT: movdqa %xmm1, %xmm4
2196 ; SSE2-NEXT: psllw $5, %xmm4
2197 ; SSE2-NEXT: pand %xmm9, %xmm4
2198 ; SSE2-NEXT: movdqa %xmm1, %xmm7
2199 ; SSE2-NEXT: psllw $7, %xmm7
2200 ; SSE2-NEXT: pand %xmm10, %xmm7
2201 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2202 ; SSE2-NEXT: psllw $3, %xmm5
2203 ; SSE2-NEXT: pand %xmm11, %xmm5
2204 ; SSE2-NEXT: por %xmm4, %xmm5
2205 ; SSE2-NEXT: movdqa %xmm1, %xmm4
2206 ; SSE2-NEXT: paddb %xmm4, %xmm4
2207 ; SSE2-NEXT: pand %xmm8, %xmm4
2208 ; SSE2-NEXT: por %xmm5, %xmm4
2209 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2210 ; SSE2-NEXT: psrlw $1, %xmm5
2211 ; SSE2-NEXT: pand %xmm12, %xmm5
2212 ; SSE2-NEXT: por %xmm4, %xmm5
2213 ; SSE2-NEXT: movdqa %xmm1, %xmm4
2214 ; SSE2-NEXT: psrlw $3, %xmm4
2215 ; SSE2-NEXT: pand %xmm13, %xmm4
2216 ; SSE2-NEXT: por %xmm5, %xmm4
2217 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2218 ; SSE2-NEXT: psrlw $5, %xmm5
2219 ; SSE2-NEXT: pand %xmm14, %xmm5
2220 ; SSE2-NEXT: por %xmm4, %xmm5
2221 ; SSE2-NEXT: psrlw $7, %xmm1
2222 ; SSE2-NEXT: pand %xmm6, %xmm1
2223 ; SSE2-NEXT: por %xmm5, %xmm1
2224 ; SSE2-NEXT: por %xmm7, %xmm1
2225 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2226 ; SSE2-NEXT: psllw $5, %xmm4
2227 ; SSE2-NEXT: pand %xmm9, %xmm4
2228 ; SSE2-NEXT: movdqa %xmm2, %xmm7
2229 ; SSE2-NEXT: psllw $7, %xmm7
2230 ; SSE2-NEXT: pand %xmm10, %xmm7
2231 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2232 ; SSE2-NEXT: psllw $3, %xmm5
2233 ; SSE2-NEXT: pand %xmm11, %xmm5
2234 ; SSE2-NEXT: por %xmm4, %xmm5
2235 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2236 ; SSE2-NEXT: paddb %xmm4, %xmm4
2237 ; SSE2-NEXT: pand %xmm8, %xmm4
2238 ; SSE2-NEXT: por %xmm5, %xmm4
2239 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2240 ; SSE2-NEXT: psrlw $1, %xmm5
2241 ; SSE2-NEXT: pand %xmm12, %xmm5
2242 ; SSE2-NEXT: por %xmm4, %xmm5
2243 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2244 ; SSE2-NEXT: psrlw $3, %xmm4
2245 ; SSE2-NEXT: pand %xmm13, %xmm4
2246 ; SSE2-NEXT: por %xmm5, %xmm4
2247 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2248 ; SSE2-NEXT: psrlw $5, %xmm5
2249 ; SSE2-NEXT: pand %xmm14, %xmm5
2250 ; SSE2-NEXT: por %xmm4, %xmm5
2251 ; SSE2-NEXT: psrlw $7, %xmm2
2252 ; SSE2-NEXT: pand %xmm6, %xmm2
2253 ; SSE2-NEXT: por %xmm5, %xmm2
2254 ; SSE2-NEXT: por %xmm7, %xmm2
2255 ; SSE2-NEXT: movdqa %xmm3, %xmm4
2256 ; SSE2-NEXT: psllw $5, %xmm4
2257 ; SSE2-NEXT: pand %xmm9, %xmm4
2258 ; SSE2-NEXT: movdqa %xmm3, %xmm7
2259 ; SSE2-NEXT: psllw $7, %xmm7
2260 ; SSE2-NEXT: pand %xmm10, %xmm7
2261 ; SSE2-NEXT: movdqa %xmm3, %xmm5
2262 ; SSE2-NEXT: psllw $3, %xmm5
2263 ; SSE2-NEXT: pand %xmm11, %xmm5
2264 ; SSE2-NEXT: por %xmm4, %xmm5
2265 ; SSE2-NEXT: movdqa %xmm3, %xmm4
2266 ; SSE2-NEXT: paddb %xmm4, %xmm4
2267 ; SSE2-NEXT: pand %xmm8, %xmm4
2268 ; SSE2-NEXT: por %xmm5, %xmm4
2269 ; SSE2-NEXT: movdqa %xmm3, %xmm5
2270 ; SSE2-NEXT: psrlw $1, %xmm5
2271 ; SSE2-NEXT: pand %xmm12, %xmm5
2272 ; SSE2-NEXT: por %xmm4, %xmm5
2273 ; SSE2-NEXT: movdqa %xmm3, %xmm4
2274 ; SSE2-NEXT: psrlw $3, %xmm4
2275 ; SSE2-NEXT: pand %xmm13, %xmm4
2276 ; SSE2-NEXT: por %xmm5, %xmm4
2277 ; SSE2-NEXT: movdqa %xmm3, %xmm5
2278 ; SSE2-NEXT: psrlw $5, %xmm5
2279 ; SSE2-NEXT: pand %xmm14, %xmm5
2280 ; SSE2-NEXT: por %xmm4, %xmm5
2281 ; SSE2-NEXT: psrlw $7, %xmm3
2282 ; SSE2-NEXT: pand %xmm6, %xmm3
2283 ; SSE2-NEXT: por %xmm5, %xmm3
2284 ; SSE2-NEXT: por %xmm7, %xmm3
2285 ; SSE2-NEXT: retq
2447 ; SSE2-LABEL: test_bitreverse_v32i16:
2448 ; SSE2: # BB#0:
2449 ; SSE2-NEXT: pxor %xmm9, %xmm9
2450 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2451 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
2452 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,0,3,2,4,5,6,7]
2453 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,4,7,6]
2454 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1],xmm0[2],xmm9[2],xmm0[3],x…
2455 ; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[1,0,3,2,4,5,6,7]
2456 ; SSE2-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,5,4,7,6]
2457 ; SSE2-NEXT: packuswb %xmm4, %xmm0
2458 ; SSE2-NEXT: movdqa %xmm0, %xmm5
2459 ; SSE2-NEXT: psllw $5, %xmm5
2460 ; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]
2461 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm10
2462 ; SSE2-NEXT: pand %xmm10, %xmm5
2463 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2464 ; SSE2-NEXT: psllw $7, %xmm4
2465 ; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,12…
2466 ; SSE2-NEXT: pand %xmm11, %xmm11
2467 ; SSE2-NEXT: pand %xmm11, %xmm4
2468 ; SSE2-NEXT: movdqa %xmm0, %xmm6
2469 ; SSE2-NEXT: psllw $3, %xmm6
2470 ; SSE2-NEXT: movdqa {{.*#+}} xmm12 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]
2471 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm12
2472 ; SSE2-NEXT: pand %xmm12, %xmm6
2473 ; SSE2-NEXT: por %xmm5, %xmm6
2474 ; SSE2-NEXT: movdqa %xmm0, %xmm5
2475 ; SSE2-NEXT: paddb %xmm5, %xmm5
2476 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2477 ; SSE2-NEXT: pand %xmm8, %xmm5
2478 ; SSE2-NEXT: por %xmm6, %xmm5
2479 ; SSE2-NEXT: movdqa %xmm0, %xmm6
2480 ; SSE2-NEXT: psrlw $1, %xmm6
2481 ; SSE2-NEXT: movdqa {{.*#+}} xmm13 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
2482 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm13
2483 ; SSE2-NEXT: pand %xmm13, %xmm6
2484 ; SSE2-NEXT: por %xmm5, %xmm6
2485 ; SSE2-NEXT: movdqa %xmm0, %xmm7
2486 ; SSE2-NEXT: psrlw $3, %xmm7
2487 ; SSE2-NEXT: movdqa {{.*#+}} xmm14 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
2488 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm14
2489 ; SSE2-NEXT: pand %xmm14, %xmm7
2490 ; SSE2-NEXT: por %xmm6, %xmm7
2491 ; SSE2-NEXT: movdqa %xmm0, %xmm5
2492 ; SSE2-NEXT: psrlw $5, %xmm5
2493 ; SSE2-NEXT: movdqa {{.*#+}} xmm15 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
2494 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm15
2495 ; SSE2-NEXT: pand %xmm15, %xmm5
2496 ; SSE2-NEXT: por %xmm7, %xmm5
2497 ; SSE2-NEXT: psrlw $7, %xmm0
2498 ; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
2499 ; SSE2-NEXT: pand %xmm7, %xmm7
2500 ; SSE2-NEXT: pand %xmm7, %xmm0
2501 ; SSE2-NEXT: por %xmm5, %xmm0
2502 ; SSE2-NEXT: por %xmm4, %xmm0
2503 ; SSE2-NEXT: movdqa %xmm1, %xmm4
2504 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
2505 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,0,3,2,4,5,6,7]
2506 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,4,7,6]
2507 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1],xmm1[2],xmm9[2],xmm1[3],x…
2508 ; SSE2-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[1,0,3,2,4,5,6,7]
2509 ; SSE2-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,5,4,7,6]
2510 ; SSE2-NEXT: packuswb %xmm4, %xmm1
2511 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2512 ; SSE2-NEXT: psllw $5, %xmm5
2513 ; SSE2-NEXT: pand %xmm10, %xmm5
2514 ; SSE2-NEXT: movdqa %xmm1, %xmm4
2515 ; SSE2-NEXT: psllw $7, %xmm4
2516 ; SSE2-NEXT: pand %xmm11, %xmm4
2517 ; SSE2-NEXT: movdqa %xmm1, %xmm6
2518 ; SSE2-NEXT: psllw $3, %xmm6
2519 ; SSE2-NEXT: pand %xmm12, %xmm6
2520 ; SSE2-NEXT: por %xmm5, %xmm6
2521 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2522 ; SSE2-NEXT: paddb %xmm5, %xmm5
2523 ; SSE2-NEXT: pand %xmm8, %xmm5
2524 ; SSE2-NEXT: por %xmm6, %xmm5
2525 ; SSE2-NEXT: movdqa %xmm1, %xmm6
2526 ; SSE2-NEXT: psrlw $1, %xmm6
2527 ; SSE2-NEXT: pand %xmm13, %xmm6
2528 ; SSE2-NEXT: por %xmm5, %xmm6
2529 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2530 ; SSE2-NEXT: psrlw $3, %xmm5
2531 ; SSE2-NEXT: pand %xmm14, %xmm5
2532 ; SSE2-NEXT: por %xmm6, %xmm5
2533 ; SSE2-NEXT: movdqa %xmm1, %xmm6
2534 ; SSE2-NEXT: psrlw $5, %xmm6
2535 ; SSE2-NEXT: pand %xmm15, %xmm6
2536 ; SSE2-NEXT: por %xmm5, %xmm6
2537 ; SSE2-NEXT: psrlw $7, %xmm1
2538 ; SSE2-NEXT: pand %xmm7, %xmm1
2539 ; SSE2-NEXT: por %xmm6, %xmm1
2540 ; SSE2-NEXT: por %xmm4, %xmm1
2541 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2542 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
2543 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,0,3,2,4,5,6,7]
2544 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,4,7,6]
2545 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm9[0],xmm2[1],xmm9[1],xmm2[2],xmm9[2],xmm2[3],x…
2546 ; SSE2-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[1,0,3,2,4,5,6,7]
2547 ; SSE2-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,5,4,7,6]
2548 ; SSE2-NEXT: packuswb %xmm4, %xmm2
2549 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2550 ; SSE2-NEXT: psllw $5, %xmm5
2551 ; SSE2-NEXT: pand %xmm10, %xmm5
2552 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2553 ; SSE2-NEXT: psllw $7, %xmm4
2554 ; SSE2-NEXT: pand %xmm11, %xmm4
2555 ; SSE2-NEXT: movdqa %xmm2, %xmm6
2556 ; SSE2-NEXT: psllw $3, %xmm6
2557 ; SSE2-NEXT: pand %xmm12, %xmm6
2558 ; SSE2-NEXT: por %xmm5, %xmm6
2559 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2560 ; SSE2-NEXT: paddb %xmm5, %xmm5
2561 ; SSE2-NEXT: pand %xmm8, %xmm5
2562 ; SSE2-NEXT: por %xmm6, %xmm5
2563 ; SSE2-NEXT: movdqa %xmm2, %xmm6
2564 ; SSE2-NEXT: psrlw $1, %xmm6
2565 ; SSE2-NEXT: pand %xmm13, %xmm6
2566 ; SSE2-NEXT: por %xmm5, %xmm6
2567 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2568 ; SSE2-NEXT: psrlw $3, %xmm5
2569 ; SSE2-NEXT: pand %xmm14, %xmm5
2570 ; SSE2-NEXT: por %xmm6, %xmm5
2571 ; SSE2-NEXT: movdqa %xmm2, %xmm6
2572 ; SSE2-NEXT: psrlw $5, %xmm6
2573 ; SSE2-NEXT: pand %xmm15, %xmm6
2574 ; SSE2-NEXT: por %xmm5, %xmm6
2575 ; SSE2-NEXT: psrlw $7, %xmm2
2576 ; SSE2-NEXT: pand %xmm7, %xmm2
2577 ; SSE2-NEXT: por %xmm6, %xmm2
2578 ; SSE2-NEXT: por %xmm4, %xmm2
2579 ; SSE2-NEXT: movdqa %xmm3, %xmm4
2580 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
2581 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[1,0,3,2,4,5,6,7]
2582 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,5,4,7,6]
2583 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm9[0],xmm3[1],xmm9[1],xmm3[2],xmm9[2],xmm3[3],x…
2584 ; SSE2-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[1,0,3,2,4,5,6,7]
2585 ; SSE2-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,5,4,7,6]
2586 ; SSE2-NEXT: packuswb %xmm4, %xmm3
2587 ; SSE2-NEXT: movdqa %xmm3, %xmm5
2588 ; SSE2-NEXT: psllw $5, %xmm5
2589 ; SSE2-NEXT: pand %xmm10, %xmm5
2590 ; SSE2-NEXT: movdqa %xmm3, %xmm4
2591 ; SSE2-NEXT: psllw $7, %xmm4
2592 ; SSE2-NEXT: pand %xmm11, %xmm4
2593 ; SSE2-NEXT: movdqa %xmm3, %xmm6
2594 ; SSE2-NEXT: psllw $3, %xmm6
2595 ; SSE2-NEXT: pand %xmm12, %xmm6
2596 ; SSE2-NEXT: por %xmm5, %xmm6
2597 ; SSE2-NEXT: movdqa %xmm3, %xmm5
2598 ; SSE2-NEXT: paddb %xmm5, %xmm5
2599 ; SSE2-NEXT: pand %xmm8, %xmm5
2600 ; SSE2-NEXT: por %xmm6, %xmm5
2601 ; SSE2-NEXT: movdqa %xmm3, %xmm6
2602 ; SSE2-NEXT: psrlw $1, %xmm6
2603 ; SSE2-NEXT: pand %xmm13, %xmm6
2604 ; SSE2-NEXT: por %xmm5, %xmm6
2605 ; SSE2-NEXT: movdqa %xmm3, %xmm5
2606 ; SSE2-NEXT: psrlw $3, %xmm5
2607 ; SSE2-NEXT: pand %xmm14, %xmm5
2608 ; SSE2-NEXT: por %xmm6, %xmm5
2609 ; SSE2-NEXT: movdqa %xmm3, %xmm6
2610 ; SSE2-NEXT: psrlw $5, %xmm6
2611 ; SSE2-NEXT: pand %xmm15, %xmm6
2612 ; SSE2-NEXT: por %xmm5, %xmm6
2613 ; SSE2-NEXT: psrlw $7, %xmm3
2614 ; SSE2-NEXT: pand %xmm7, %xmm3
2615 ; SSE2-NEXT: por %xmm6, %xmm3
2616 ; SSE2-NEXT: por %xmm4, %xmm3
2617 ; SSE2-NEXT: retq
2797 ; SSE2-LABEL: test_bitreverse_v16i32:
2798 ; SSE2: # BB#0:
2799 ; SSE2-NEXT: pxor %xmm9, %xmm9
2800 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2801 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
2802 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,2,1,0,4,5,6,7]
2803 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,6,5,4]
2804 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1],xmm0[2],xmm9[2],xmm0[3],x…
2805 ; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,2,1,0,4,5,6,7]
2806 ; SSE2-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,5,4]
2807 ; SSE2-NEXT: packuswb %xmm4, %xmm0
2808 ; SSE2-NEXT: movdqa %xmm0, %xmm5
2809 ; SSE2-NEXT: psllw $5, %xmm5
2810 ; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]
2811 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm10
2812 ; SSE2-NEXT: pand %xmm10, %xmm5
2813 ; SSE2-NEXT: movdqa %xmm0, %xmm4
2814 ; SSE2-NEXT: psllw $7, %xmm4
2815 ; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,12…
2816 ; SSE2-NEXT: pand %xmm11, %xmm11
2817 ; SSE2-NEXT: pand %xmm11, %xmm4
2818 ; SSE2-NEXT: movdqa %xmm0, %xmm6
2819 ; SSE2-NEXT: psllw $3, %xmm6
2820 ; SSE2-NEXT: movdqa {{.*#+}} xmm12 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]
2821 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm12
2822 ; SSE2-NEXT: pand %xmm12, %xmm6
2823 ; SSE2-NEXT: por %xmm5, %xmm6
2824 ; SSE2-NEXT: movdqa %xmm0, %xmm5
2825 ; SSE2-NEXT: paddb %xmm5, %xmm5
2826 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2827 ; SSE2-NEXT: pand %xmm8, %xmm5
2828 ; SSE2-NEXT: por %xmm6, %xmm5
2829 ; SSE2-NEXT: movdqa %xmm0, %xmm6
2830 ; SSE2-NEXT: psrlw $1, %xmm6
2831 ; SSE2-NEXT: movdqa {{.*#+}} xmm13 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
2832 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm13
2833 ; SSE2-NEXT: pand %xmm13, %xmm6
2834 ; SSE2-NEXT: por %xmm5, %xmm6
2835 ; SSE2-NEXT: movdqa %xmm0, %xmm7
2836 ; SSE2-NEXT: psrlw $3, %xmm7
2837 ; SSE2-NEXT: movdqa {{.*#+}} xmm14 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
2838 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm14
2839 ; SSE2-NEXT: pand %xmm14, %xmm7
2840 ; SSE2-NEXT: por %xmm6, %xmm7
2841 ; SSE2-NEXT: movdqa %xmm0, %xmm5
2842 ; SSE2-NEXT: psrlw $5, %xmm5
2843 ; SSE2-NEXT: movdqa {{.*#+}} xmm15 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
2844 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm15
2845 ; SSE2-NEXT: pand %xmm15, %xmm5
2846 ; SSE2-NEXT: por %xmm7, %xmm5
2847 ; SSE2-NEXT: psrlw $7, %xmm0
2848 ; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
2849 ; SSE2-NEXT: pand %xmm7, %xmm7
2850 ; SSE2-NEXT: pand %xmm7, %xmm0
2851 ; SSE2-NEXT: por %xmm5, %xmm0
2852 ; SSE2-NEXT: por %xmm4, %xmm0
2853 ; SSE2-NEXT: movdqa %xmm1, %xmm4
2854 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
2855 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,2,1,0,4,5,6,7]
2856 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,6,5,4]
2857 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1],xmm1[2],xmm9[2],xmm1[3],x…
2858 ; SSE2-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[3,2,1,0,4,5,6,7]
2859 ; SSE2-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,6,5,4]
2860 ; SSE2-NEXT: packuswb %xmm4, %xmm1
2861 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2862 ; SSE2-NEXT: psllw $5, %xmm5
2863 ; SSE2-NEXT: pand %xmm10, %xmm5
2864 ; SSE2-NEXT: movdqa %xmm1, %xmm4
2865 ; SSE2-NEXT: psllw $7, %xmm4
2866 ; SSE2-NEXT: pand %xmm11, %xmm4
2867 ; SSE2-NEXT: movdqa %xmm1, %xmm6
2868 ; SSE2-NEXT: psllw $3, %xmm6
2869 ; SSE2-NEXT: pand %xmm12, %xmm6
2870 ; SSE2-NEXT: por %xmm5, %xmm6
2871 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2872 ; SSE2-NEXT: paddb %xmm5, %xmm5
2873 ; SSE2-NEXT: pand %xmm8, %xmm5
2874 ; SSE2-NEXT: por %xmm6, %xmm5
2875 ; SSE2-NEXT: movdqa %xmm1, %xmm6
2876 ; SSE2-NEXT: psrlw $1, %xmm6
2877 ; SSE2-NEXT: pand %xmm13, %xmm6
2878 ; SSE2-NEXT: por %xmm5, %xmm6
2879 ; SSE2-NEXT: movdqa %xmm1, %xmm5
2880 ; SSE2-NEXT: psrlw $3, %xmm5
2881 ; SSE2-NEXT: pand %xmm14, %xmm5
2882 ; SSE2-NEXT: por %xmm6, %xmm5
2883 ; SSE2-NEXT: movdqa %xmm1, %xmm6
2884 ; SSE2-NEXT: psrlw $5, %xmm6
2885 ; SSE2-NEXT: pand %xmm15, %xmm6
2886 ; SSE2-NEXT: por %xmm5, %xmm6
2887 ; SSE2-NEXT: psrlw $7, %xmm1
2888 ; SSE2-NEXT: pand %xmm7, %xmm1
2889 ; SSE2-NEXT: por %xmm6, %xmm1
2890 ; SSE2-NEXT: por %xmm4, %xmm1
2891 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2892 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
2893 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,2,1,0,4,5,6,7]
2894 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,6,5,4]
2895 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm9[0],xmm2[1],xmm9[1],xmm2[2],xmm9[2],xmm2[3],x…
2896 ; SSE2-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,2,1,0,4,5,6,7]
2897 ; SSE2-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,6,5,4]
2898 ; SSE2-NEXT: packuswb %xmm4, %xmm2
2899 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2900 ; SSE2-NEXT: psllw $5, %xmm5
2901 ; SSE2-NEXT: pand %xmm10, %xmm5
2902 ; SSE2-NEXT: movdqa %xmm2, %xmm4
2903 ; SSE2-NEXT: psllw $7, %xmm4
2904 ; SSE2-NEXT: pand %xmm11, %xmm4
2905 ; SSE2-NEXT: movdqa %xmm2, %xmm6
2906 ; SSE2-NEXT: psllw $3, %xmm6
2907 ; SSE2-NEXT: pand %xmm12, %xmm6
2908 ; SSE2-NEXT: por %xmm5, %xmm6
2909 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2910 ; SSE2-NEXT: paddb %xmm5, %xmm5
2911 ; SSE2-NEXT: pand %xmm8, %xmm5
2912 ; SSE2-NEXT: por %xmm6, %xmm5
2913 ; SSE2-NEXT: movdqa %xmm2, %xmm6
2914 ; SSE2-NEXT: psrlw $1, %xmm6
2915 ; SSE2-NEXT: pand %xmm13, %xmm6
2916 ; SSE2-NEXT: por %xmm5, %xmm6
2917 ; SSE2-NEXT: movdqa %xmm2, %xmm5
2918 ; SSE2-NEXT: psrlw $3, %xmm5
2919 ; SSE2-NEXT: pand %xmm14, %xmm5
2920 ; SSE2-NEXT: por %xmm6, %xmm5
2921 ; SSE2-NEXT: movdqa %xmm2, %xmm6
2922 ; SSE2-NEXT: psrlw $5, %xmm6
2923 ; SSE2-NEXT: pand %xmm15, %xmm6
2924 ; SSE2-NEXT: por %xmm5, %xmm6
2925 ; SSE2-NEXT: psrlw $7, %xmm2
2926 ; SSE2-NEXT: pand %xmm7, %xmm2
2927 ; SSE2-NEXT: por %xmm6, %xmm2
2928 ; SSE2-NEXT: por %xmm4, %xmm2
2929 ; SSE2-NEXT: movdqa %xmm3, %xmm4
2930 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
2931 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,2,1,0,4,5,6,7]
2932 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,6,5,4]
2933 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm9[0],xmm3[1],xmm9[1],xmm3[2],xmm9[2],xmm3[3],x…
2934 ; SSE2-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,2,1,0,4,5,6,7]
2935 ; SSE2-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,6,5,4]
2936 ; SSE2-NEXT: packuswb %xmm4, %xmm3
2937 ; SSE2-NEXT: movdqa %xmm3, %xmm5
2938 ; SSE2-NEXT: psllw $5, %xmm5
2939 ; SSE2-NEXT: pand %xmm10, %xmm5
2940 ; SSE2-NEXT: movdqa %xmm3, %xmm4
2941 ; SSE2-NEXT: psllw $7, %xmm4
2942 ; SSE2-NEXT: pand %xmm11, %xmm4
2943 ; SSE2-NEXT: movdqa %xmm3, %xmm6
2944 ; SSE2-NEXT: psllw $3, %xmm6
2945 ; SSE2-NEXT: pand %xmm12, %xmm6
2946 ; SSE2-NEXT: por %xmm5, %xmm6
2947 ; SSE2-NEXT: movdqa %xmm3, %xmm5
2948 ; SSE2-NEXT: paddb %xmm5, %xmm5
2949 ; SSE2-NEXT: pand %xmm8, %xmm5
2950 ; SSE2-NEXT: por %xmm6, %xmm5
2951 ; SSE2-NEXT: movdqa %xmm3, %xmm6
2952 ; SSE2-NEXT: psrlw $1, %xmm6
2953 ; SSE2-NEXT: pand %xmm13, %xmm6
2954 ; SSE2-NEXT: por %xmm5, %xmm6
2955 ; SSE2-NEXT: movdqa %xmm3, %xmm5
2956 ; SSE2-NEXT: psrlw $3, %xmm5
2957 ; SSE2-NEXT: pand %xmm14, %xmm5
2958 ; SSE2-NEXT: por %xmm6, %xmm5
2959 ; SSE2-NEXT: movdqa %xmm3, %xmm6
2960 ; SSE2-NEXT: psrlw $5, %xmm6
2961 ; SSE2-NEXT: pand %xmm15, %xmm6
2962 ; SSE2-NEXT: por %xmm5, %xmm6
2963 ; SSE2-NEXT: psrlw $7, %xmm3
2964 ; SSE2-NEXT: pand %xmm7, %xmm3
2965 ; SSE2-NEXT: por %xmm6, %xmm3
2966 ; SSE2-NEXT: por %xmm4, %xmm3
2967 ; SSE2-NEXT: retq
3224 ; SSE2-LABEL: test_bitreverse_v8i64:
3225 ; SSE2: # BB#0:
3226 ; SSE2-NEXT: pxor %xmm9, %xmm9
3227 ; SSE2-NEXT: movdqa %xmm0, %xmm4
3228 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
3229 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,3,0,1]
3230 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,2,1,0,4,5,6,7]
3231 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,6,5,4]
3232 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1],xmm0[2],xmm9[2],xmm0[3],x…
3233 ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
3234 ; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[3,2,1,0,4,5,6,7]
3235 ; SSE2-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,7,6,5,4]
3236 ; SSE2-NEXT: packuswb %xmm4, %xmm0
3237 ; SSE2-NEXT: movdqa %xmm0, %xmm5
3238 ; SSE2-NEXT: psllw $5, %xmm5
3239 ; SSE2-NEXT: movdqa {{.*#+}} xmm10 = [64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]
3240 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm10
3241 ; SSE2-NEXT: pand %xmm10, %xmm5
3242 ; SSE2-NEXT: movdqa %xmm0, %xmm4
3243 ; SSE2-NEXT: psllw $7, %xmm4
3244 ; SSE2-NEXT: movdqa {{.*#+}} xmm11 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,12…
3245 ; SSE2-NEXT: pand %xmm11, %xmm11
3246 ; SSE2-NEXT: pand %xmm11, %xmm4
3247 ; SSE2-NEXT: movdqa %xmm0, %xmm6
3248 ; SSE2-NEXT: psllw $3, %xmm6
3249 ; SSE2-NEXT: movdqa {{.*#+}} xmm12 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]
3250 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm12
3251 ; SSE2-NEXT: pand %xmm12, %xmm6
3252 ; SSE2-NEXT: por %xmm5, %xmm6
3253 ; SSE2-NEXT: movdqa %xmm0, %xmm5
3254 ; SSE2-NEXT: paddb %xmm5, %xmm5
3255 ; SSE2-NEXT: movdqa {{.*#+}} xmm8 = [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
3256 ; SSE2-NEXT: pand %xmm8, %xmm5
3257 ; SSE2-NEXT: por %xmm6, %xmm5
3258 ; SSE2-NEXT: movdqa %xmm0, %xmm6
3259 ; SSE2-NEXT: psrlw $1, %xmm6
3260 ; SSE2-NEXT: movdqa {{.*#+}} xmm13 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
3261 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm13
3262 ; SSE2-NEXT: pand %xmm13, %xmm6
3263 ; SSE2-NEXT: por %xmm5, %xmm6
3264 ; SSE2-NEXT: movdqa %xmm0, %xmm7
3265 ; SSE2-NEXT: psrlw $3, %xmm7
3266 ; SSE2-NEXT: movdqa {{.*#+}} xmm14 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
3267 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm14
3268 ; SSE2-NEXT: pand %xmm14, %xmm7
3269 ; SSE2-NEXT: por %xmm6, %xmm7
3270 ; SSE2-NEXT: movdqa %xmm0, %xmm5
3271 ; SSE2-NEXT: psrlw $5, %xmm5
3272 ; SSE2-NEXT: movdqa {{.*#+}} xmm15 = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
3273 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm15
3274 ; SSE2-NEXT: pand %xmm15, %xmm5
3275 ; SSE2-NEXT: por %xmm7, %xmm5
3276 ; SSE2-NEXT: psrlw $7, %xmm0
3277 ; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
3278 ; SSE2-NEXT: pand %xmm7, %xmm7
3279 ; SSE2-NEXT: pand %xmm7, %xmm0
3280 ; SSE2-NEXT: por %xmm5, %xmm0
3281 ; SSE2-NEXT: por %xmm4, %xmm0
3282 ; SSE2-NEXT: movdqa %xmm1, %xmm4
3283 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
3284 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,3,0,1]
3285 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,2,1,0,4,5,6,7]
3286 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,6,5,4]
3287 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1],xmm1[2],xmm9[2],xmm1[3],x…
3288 ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,0,1]
3289 ; SSE2-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[3,2,1,0,4,5,6,7]
3290 ; SSE2-NEXT: pshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,7,6,5,4]
3291 ; SSE2-NEXT: packuswb %xmm4, %xmm1
3292 ; SSE2-NEXT: movdqa %xmm1, %xmm5
3293 ; SSE2-NEXT: psllw $5, %xmm5
3294 ; SSE2-NEXT: pand %xmm10, %xmm5
3295 ; SSE2-NEXT: movdqa %xmm1, %xmm4
3296 ; SSE2-NEXT: psllw $7, %xmm4
3297 ; SSE2-NEXT: pand %xmm11, %xmm4
3298 ; SSE2-NEXT: movdqa %xmm1, %xmm6
3299 ; SSE2-NEXT: psllw $3, %xmm6
3300 ; SSE2-NEXT: pand %xmm12, %xmm6
3301 ; SSE2-NEXT: por %xmm5, %xmm6
3302 ; SSE2-NEXT: movdqa %xmm1, %xmm5
3303 ; SSE2-NEXT: paddb %xmm5, %xmm5
3304 ; SSE2-NEXT: pand %xmm8, %xmm5
3305 ; SSE2-NEXT: por %xmm6, %xmm5
3306 ; SSE2-NEXT: movdqa %xmm1, %xmm6
3307 ; SSE2-NEXT: psrlw $1, %xmm6
3308 ; SSE2-NEXT: pand %xmm13, %xmm6
3309 ; SSE2-NEXT: por %xmm5, %xmm6
3310 ; SSE2-NEXT: movdqa %xmm1, %xmm5
3311 ; SSE2-NEXT: psrlw $3, %xmm5
3312 ; SSE2-NEXT: pand %xmm14, %xmm5
3313 ; SSE2-NEXT: por %xmm6, %xmm5
3314 ; SSE2-NEXT: movdqa %xmm1, %xmm6
3315 ; SSE2-NEXT: psrlw $5, %xmm6
3316 ; SSE2-NEXT: pand %xmm15, %xmm6
3317 ; SSE2-NEXT: por %xmm5, %xmm6
3318 ; SSE2-NEXT: psrlw $7, %xmm1
3319 ; SSE2-NEXT: pand %xmm7, %xmm1
3320 ; SSE2-NEXT: por %xmm6, %xmm1
3321 ; SSE2-NEXT: por %xmm4, %xmm1
3322 ; SSE2-NEXT: movdqa %xmm2, %xmm4
3323 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
3324 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,3,0,1]
3325 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,2,1,0,4,5,6,7]
3326 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,6,5,4]
3327 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0],xmm9[0],xmm2[1],xmm9[1],xmm2[2],xmm9[2],xmm2[3],x…
3328 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,3,0,1]
3329 ; SSE2-NEXT: pshuflw {{.*#+}} xmm2 = xmm2[3,2,1,0,4,5,6,7]
3330 ; SSE2-NEXT: pshufhw {{.*#+}} xmm2 = xmm2[0,1,2,3,7,6,5,4]
3331 ; SSE2-NEXT: packuswb %xmm4, %xmm2
3332 ; SSE2-NEXT: movdqa %xmm2, %xmm5
3333 ; SSE2-NEXT: psllw $5, %xmm5
3334 ; SSE2-NEXT: pand %xmm10, %xmm5
3335 ; SSE2-NEXT: movdqa %xmm2, %xmm4
3336 ; SSE2-NEXT: psllw $7, %xmm4
3337 ; SSE2-NEXT: pand %xmm11, %xmm4
3338 ; SSE2-NEXT: movdqa %xmm2, %xmm6
3339 ; SSE2-NEXT: psllw $3, %xmm6
3340 ; SSE2-NEXT: pand %xmm12, %xmm6
3341 ; SSE2-NEXT: por %xmm5, %xmm6
3342 ; SSE2-NEXT: movdqa %xmm2, %xmm5
3343 ; SSE2-NEXT: paddb %xmm5, %xmm5
3344 ; SSE2-NEXT: pand %xmm8, %xmm5
3345 ; SSE2-NEXT: por %xmm6, %xmm5
3346 ; SSE2-NEXT: movdqa %xmm2, %xmm6
3347 ; SSE2-NEXT: psrlw $1, %xmm6
3348 ; SSE2-NEXT: pand %xmm13, %xmm6
3349 ; SSE2-NEXT: por %xmm5, %xmm6
3350 ; SSE2-NEXT: movdqa %xmm2, %xmm5
3351 ; SSE2-NEXT: psrlw $3, %xmm5
3352 ; SSE2-NEXT: pand %xmm14, %xmm5
3353 ; SSE2-NEXT: por %xmm6, %xmm5
3354 ; SSE2-NEXT: movdqa %xmm2, %xmm6
3355 ; SSE2-NEXT: psrlw $5, %xmm6
3356 ; SSE2-NEXT: pand %xmm15, %xmm6
3357 ; SSE2-NEXT: por %xmm5, %xmm6
3358 ; SSE2-NEXT: psrlw $7, %xmm2
3359 ; SSE2-NEXT: pand %xmm7, %xmm2
3360 ; SSE2-NEXT: por %xmm6, %xmm2
3361 ; SSE2-NEXT: por %xmm4, %xmm2
3362 ; SSE2-NEXT: movdqa %xmm3, %xmm4
3363 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm9[8],xmm4[9],xmm9[9],xmm4[10],xmm9[10],xmm4[11…
3364 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,3,0,1]
3365 ; SSE2-NEXT: pshuflw {{.*#+}} xmm4 = xmm4[3,2,1,0,4,5,6,7]
3366 ; SSE2-NEXT: pshufhw {{.*#+}} xmm4 = xmm4[0,1,2,3,7,6,5,4]
3367 ; SSE2-NEXT: punpcklbw {{.*#+}} xmm3 = xmm3[0],xmm9[0],xmm3[1],xmm9[1],xmm3[2],xmm9[2],xmm3[3],x…
3368 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm3[2,3,0,1]
3369 ; SSE2-NEXT: pshuflw {{.*#+}} xmm3 = xmm3[3,2,1,0,4,5,6,7]
3370 ; SSE2-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,7,6,5,4]
3371 ; SSE2-NEXT: packuswb %xmm4, %xmm3
3372 ; SSE2-NEXT: movdqa %xmm3, %xmm5
3373 ; SSE2-NEXT: psllw $5, %xmm5
3374 ; SSE2-NEXT: pand %xmm10, %xmm5
3375 ; SSE2-NEXT: movdqa %xmm3, %xmm4
3376 ; SSE2-NEXT: psllw $7, %xmm4
3377 ; SSE2-NEXT: pand %xmm11, %xmm4
3378 ; SSE2-NEXT: movdqa %xmm3, %xmm6
3379 ; SSE2-NEXT: psllw $3, %xmm6
3380 ; SSE2-NEXT: pand %xmm12, %xmm6
3381 ; SSE2-NEXT: por %xmm5, %xmm6
3382 ; SSE2-NEXT: movdqa %xmm3, %xmm5
3383 ; SSE2-NEXT: paddb %xmm5, %xmm5
3384 ; SSE2-NEXT: pand %xmm8, %xmm5
3385 ; SSE2-NEXT: por %xmm6, %xmm5
3386 ; SSE2-NEXT: movdqa %xmm3, %xmm6
3387 ; SSE2-NEXT: psrlw $1, %xmm6
3388 ; SSE2-NEXT: pand %xmm13, %xmm6
3389 ; SSE2-NEXT: por %xmm5, %xmm6
3390 ; SSE2-NEXT: movdqa %xmm3, %xmm5
3391 ; SSE2-NEXT: psrlw $3, %xmm5
3392 ; SSE2-NEXT: pand %xmm14, %xmm5
3393 ; SSE2-NEXT: por %xmm6, %xmm5
3394 ; SSE2-NEXT: movdqa %xmm3, %xmm6
3395 ; SSE2-NEXT: psrlw $5, %xmm6
3396 ; SSE2-NEXT: pand %xmm15, %xmm6
3397 ; SSE2-NEXT: por %xmm5, %xmm6
3398 ; SSE2-NEXT: psrlw $7, %xmm3
3399 ; SSE2-NEXT: pand %xmm7, %xmm3
3400 ; SSE2-NEXT: por %xmm6, %xmm3
3401 ; SSE2-NEXT: por %xmm4, %xmm3
3402 ; SSE2-NEXT: retq