1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2
- ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,X86-SSE,SSE2, X86-SSE2
3
- ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+sse4.1 | FileCheck %s --check-prefixes=SSE,X86-SSE,SSE41, X86-SSE41
2
+ ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,X86-SSE,X86-SSE2
3
+ ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+sse4.1 | FileCheck %s --check-prefixes=SSE,X86-SSE,X86-SSE41
4
4
; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=AVX,X86-AVX,X86-AVX1
5
5
; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefixes=AVX,X86-AVX,X86-AVX512
6
- ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,X64-SSE,SSE2, X64-SSE2
7
- ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse4.1 | FileCheck %s --check-prefixes=SSE,X64-SSE,SSE41, X64-SSE41
6
+ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,X64-SSE,X64-SSE2
7
+ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse4.1 | FileCheck %s --check-prefixes=SSE,X64-SSE,X64-SSE41
8
8
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=AVX,X64-AVX,X64-AVX1
9
9
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefixes=AVX,X64-AVX,X64-AVX512
10
10
@@ -1150,17 +1150,11 @@ define <4 x float> @insert_test5_add_ss(<4 x float> %a, <4 x float> %b) {
1150
1150
}
1151
1151
1152
1152
define <4 x float > @insert_test5_sub_ss (<4 x float > %a , <4 x float > %b ) {
1153
- ; SSE2-LABEL: insert_test5_sub_ss:
1154
- ; SSE2: # %bb.0:
1155
- ; SSE2-NEXT: subps %xmm0, %xmm1
1156
- ; SSE2-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1157
- ; SSE2-NEXT: ret{{[l|q]}}
1158
- ;
1159
- ; SSE41-LABEL: insert_test5_sub_ss:
1160
- ; SSE41: # %bb.0:
1161
- ; SSE41-NEXT: subps %xmm0, %xmm1
1162
- ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1163
- ; SSE41-NEXT: ret{{[l|q]}}
1153
+ ; SSE-LABEL: insert_test5_sub_ss:
1154
+ ; SSE: # %bb.0:
1155
+ ; SSE-NEXT: subps %xmm0, %xmm1
1156
+ ; SSE-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1157
+ ; SSE-NEXT: ret{{[l|q]}}
1164
1158
;
1165
1159
; AVX-LABEL: insert_test5_sub_ss:
1166
1160
; AVX: # %bb.0:
@@ -1188,17 +1182,11 @@ define <4 x float> @insert_test5_mul_ss(<4 x float> %a, <4 x float> %b) {
1188
1182
}
1189
1183
1190
1184
define <4 x float > @insert_test5_div_ss (<4 x float > %a , <4 x float > %b ) {
1191
- ; SSE2-LABEL: insert_test5_div_ss:
1192
- ; SSE2: # %bb.0:
1193
- ; SSE2-NEXT: divps %xmm0, %xmm1
1194
- ; SSE2-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1195
- ; SSE2-NEXT: ret{{[l|q]}}
1196
- ;
1197
- ; SSE41-LABEL: insert_test5_div_ss:
1198
- ; SSE41: # %bb.0:
1199
- ; SSE41-NEXT: divps %xmm0, %xmm1
1200
- ; SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1201
- ; SSE41-NEXT: ret{{[l|q]}}
1185
+ ; SSE-LABEL: insert_test5_div_ss:
1186
+ ; SSE: # %bb.0:
1187
+ ; SSE-NEXT: divps %xmm0, %xmm1
1188
+ ; SSE-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1189
+ ; SSE-NEXT: ret{{[l|q]}}
1202
1190
;
1203
1191
; AVX-LABEL: insert_test5_div_ss:
1204
1192
; AVX: # %bb.0:
@@ -1226,17 +1214,11 @@ define <2 x double> @insert_test5_add_sd(<2 x double> %a, <2 x double> %b) {
1226
1214
}
1227
1215
1228
1216
define <2 x double > @insert_test5_sub_sd (<2 x double > %a , <2 x double > %b ) {
1229
- ; SSE2-LABEL: insert_test5_sub_sd:
1230
- ; SSE2: # %bb.0:
1231
- ; SSE2-NEXT: subpd %xmm0, %xmm1
1232
- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1233
- ; SSE2-NEXT: ret{{[l|q]}}
1234
- ;
1235
- ; SSE41-LABEL: insert_test5_sub_sd:
1236
- ; SSE41: # %bb.0:
1237
- ; SSE41-NEXT: subpd %xmm0, %xmm1
1238
- ; SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1239
- ; SSE41-NEXT: ret{{[l|q]}}
1217
+ ; SSE-LABEL: insert_test5_sub_sd:
1218
+ ; SSE: # %bb.0:
1219
+ ; SSE-NEXT: subpd %xmm0, %xmm1
1220
+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1221
+ ; SSE-NEXT: ret{{[l|q]}}
1240
1222
;
1241
1223
; AVX-LABEL: insert_test5_sub_sd:
1242
1224
; AVX: # %bb.0:
@@ -1264,17 +1246,11 @@ define <2 x double> @insert_test5_mul_sd(<2 x double> %a, <2 x double> %b) {
1264
1246
}
1265
1247
1266
1248
define <2 x double > @insert_test5_div_sd (<2 x double > %a , <2 x double > %b ) {
1267
- ; SSE2-LABEL: insert_test5_div_sd:
1268
- ; SSE2: # %bb.0:
1269
- ; SSE2-NEXT: divpd %xmm0, %xmm1
1270
- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1271
- ; SSE2-NEXT: ret{{[l|q]}}
1272
- ;
1273
- ; SSE41-LABEL: insert_test5_div_sd:
1274
- ; SSE41: # %bb.0:
1275
- ; SSE41-NEXT: divpd %xmm0, %xmm1
1276
- ; SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1277
- ; SSE41-NEXT: ret{{[l|q]}}
1249
+ ; SSE-LABEL: insert_test5_div_sd:
1250
+ ; SSE: # %bb.0:
1251
+ ; SSE-NEXT: divpd %xmm0, %xmm1
1252
+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1253
+ ; SSE-NEXT: ret{{[l|q]}}
1278
1254
;
1279
1255
; AVX-LABEL: insert_test5_div_sd:
1280
1256
; AVX: # %bb.0:
@@ -1287,29 +1263,17 @@ define <2 x double> @insert_test5_div_sd(<2 x double> %a, <2 x double> %b) {
1287
1263
}
1288
1264
1289
1265
define <4 x float > @add_ss_mask (<4 x float > %a , <4 x float > %b , <4 x float > %c , i8 %mask ) {
1290
- ; X86-SSE2-LABEL: add_ss_mask:
1291
- ; X86-SSE2: # %bb.0:
1292
- ; X86-SSE2-NEXT: testb $1, {{[0-9]+}}(%esp)
1293
- ; X86-SSE2-NEXT: jne .LBB70_1
1294
- ; X86-SSE2-NEXT: # %bb.2:
1295
- ; X86-SSE2-NEXT: movss {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]
1296
- ; X86-SSE2-NEXT: retl
1297
- ; X86-SSE2-NEXT: .LBB70_1:
1298
- ; X86-SSE2-NEXT: addss %xmm0, %xmm1
1299
- ; X86-SSE2-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1300
- ; X86-SSE2-NEXT: retl
1301
- ;
1302
- ; X86-SSE41-LABEL: add_ss_mask:
1303
- ; X86-SSE41: # %bb.0:
1304
- ; X86-SSE41-NEXT: testb $1, {{[0-9]+}}(%esp)
1305
- ; X86-SSE41-NEXT: jne .LBB70_1
1306
- ; X86-SSE41-NEXT: # %bb.2:
1307
- ; X86-SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]
1308
- ; X86-SSE41-NEXT: retl
1309
- ; X86-SSE41-NEXT: .LBB70_1:
1310
- ; X86-SSE41-NEXT: addss %xmm0, %xmm1
1311
- ; X86-SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1312
- ; X86-SSE41-NEXT: retl
1266
+ ; X86-SSE-LABEL: add_ss_mask:
1267
+ ; X86-SSE: # %bb.0:
1268
+ ; X86-SSE-NEXT: testb $1, {{[0-9]+}}(%esp)
1269
+ ; X86-SSE-NEXT: jne .LBB70_1
1270
+ ; X86-SSE-NEXT: # %bb.2:
1271
+ ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]
1272
+ ; X86-SSE-NEXT: retl
1273
+ ; X86-SSE-NEXT: .LBB70_1:
1274
+ ; X86-SSE-NEXT: addss %xmm0, %xmm1
1275
+ ; X86-SSE-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1276
+ ; X86-SSE-NEXT: retl
1313
1277
;
1314
1278
; X86-AVX1-LABEL: add_ss_mask:
1315
1279
; X86-AVX1: # %bb.0:
@@ -1329,29 +1293,17 @@ define <4 x float> @add_ss_mask(<4 x float> %a, <4 x float> %b, <4 x float> %c,
1329
1293
; X86-AVX512-NEXT: vmovaps %xmm2, %xmm0
1330
1294
; X86-AVX512-NEXT: retl
1331
1295
;
1332
- ; X64-SSE2-LABEL: add_ss_mask:
1333
- ; X64-SSE2: # %bb.0:
1334
- ; X64-SSE2-NEXT: testb $1, %dil
1335
- ; X64-SSE2-NEXT: jne .LBB70_1
1336
- ; X64-SSE2-NEXT: # %bb.2:
1337
- ; X64-SSE2-NEXT: movss {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]
1338
- ; X64-SSE2-NEXT: retq
1339
- ; X64-SSE2-NEXT: .LBB70_1:
1340
- ; X64-SSE2-NEXT: addss %xmm0, %xmm1
1341
- ; X64-SSE2-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1342
- ; X64-SSE2-NEXT: retq
1343
- ;
1344
- ; X64-SSE41-LABEL: add_ss_mask:
1345
- ; X64-SSE41: # %bb.0:
1346
- ; X64-SSE41-NEXT: testb $1, %dil
1347
- ; X64-SSE41-NEXT: jne .LBB70_1
1348
- ; X64-SSE41-NEXT: # %bb.2:
1349
- ; X64-SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]
1350
- ; X64-SSE41-NEXT: retq
1351
- ; X64-SSE41-NEXT: .LBB70_1:
1352
- ; X64-SSE41-NEXT: addss %xmm0, %xmm1
1353
- ; X64-SSE41-NEXT: blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1354
- ; X64-SSE41-NEXT: retq
1296
+ ; X64-SSE-LABEL: add_ss_mask:
1297
+ ; X64-SSE: # %bb.0:
1298
+ ; X64-SSE-NEXT: testb $1, %dil
1299
+ ; X64-SSE-NEXT: jne .LBB70_1
1300
+ ; X64-SSE-NEXT: # %bb.2:
1301
+ ; X64-SSE-NEXT: movss {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]
1302
+ ; X64-SSE-NEXT: retq
1303
+ ; X64-SSE-NEXT: .LBB70_1:
1304
+ ; X64-SSE-NEXT: addss %xmm0, %xmm1
1305
+ ; X64-SSE-NEXT: movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
1306
+ ; X64-SSE-NEXT: retq
1355
1307
;
1356
1308
; X64-AVX1-LABEL: add_ss_mask:
1357
1309
; X64-AVX1: # %bb.0:
@@ -1402,7 +1354,7 @@ define <2 x double> @add_sd_mask(<2 x double> %a, <2 x double> %b, <2 x double>
1402
1354
; X86-SSE41-NEXT: retl
1403
1355
; X86-SSE41-NEXT: .LBB71_1:
1404
1356
; X86-SSE41-NEXT: addsd %xmm0, %xmm1
1405
- ; X86-SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1357
+ ; X86-SSE41-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1406
1358
; X86-SSE41-NEXT: retl
1407
1359
;
1408
1360
; X86-AVX1-LABEL: add_sd_mask:
@@ -1444,7 +1396,7 @@ define <2 x double> @add_sd_mask(<2 x double> %a, <2 x double> %b, <2 x double>
1444
1396
; X64-SSE41-NEXT: retq
1445
1397
; X64-SSE41-NEXT: .LBB71_1:
1446
1398
; X64-SSE41-NEXT: addsd %xmm0, %xmm1
1447
- ; X64-SSE41-NEXT: blendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1399
+ ; X64-SSE41-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1448
1400
; X64-SSE41-NEXT: retq
1449
1401
;
1450
1402
; X64-AVX1-LABEL: add_sd_mask:
0 commit comments