@@ -335,22 +335,11 @@ define <4 x i32> @mul_v4i32_17(<4 x i32> %a0) nounwind {
335
335
; SSE-NEXT: paddd %xmm1, %xmm0
336
336
; SSE-NEXT: ret{{[l|q]}}
337
337
;
338
- ; X64-XOP-LABEL: mul_v4i32_17:
339
- ; X64-XOP: # %bb.0:
340
- ; X64-XOP-NEXT: vpslld $4, %xmm0, %xmm1
341
- ; X64-XOP-NEXT: vpaddd %xmm1, %xmm0, %xmm0
342
- ; X64-XOP-NEXT: retq
343
- ;
344
- ; X64-AVX2-LABEL: mul_v4i32_17:
345
- ; X64-AVX2: # %bb.0:
346
- ; X64-AVX2-NEXT: vpbroadcastd {{.*#+}} xmm1 = [17,17,17,17]
347
- ; X64-AVX2-NEXT: vpmulld %xmm1, %xmm0, %xmm0
348
- ; X64-AVX2-NEXT: retq
349
- ;
350
- ; X64-AVX512DQ-LABEL: mul_v4i32_17:
351
- ; X64-AVX512DQ: # %bb.0:
352
- ; X64-AVX512DQ-NEXT: vpmulld {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to4}, %xmm0, %xmm0
353
- ; X64-AVX512DQ-NEXT: retq
338
+ ; X64-AVX-LABEL: mul_v4i32_17:
339
+ ; X64-AVX: # %bb.0:
340
+ ; X64-AVX-NEXT: vpslld $4, %xmm0, %xmm1
341
+ ; X64-AVX-NEXT: vpaddd %xmm1, %xmm0, %xmm0
342
+ ; X64-AVX-NEXT: retq
354
343
%1 = mul <4 x i32 > %a0 , <i32 17 , i32 17 , i32 17 , i32 17 >
355
344
ret <4 x i32 > %1
356
345
}
@@ -471,13 +460,14 @@ define <8 x i32> @mul_v8i32_17(<8 x i32> %a0) nounwind {
471
460
;
472
461
; X64-AVX2-LABEL: mul_v8i32_17:
473
462
; X64-AVX2: # %bb.0:
474
- ; X64-AVX2-NEXT: vpbroadcastd {{.*#+}} ymm1 = [17,17,17,17,17,17,17,17]
475
- ; X64-AVX2-NEXT: vpmulld %ymm1, %ymm0, %ymm0
463
+ ; X64-AVX2-NEXT: vpslld $4, %ymm0, %ymm1
464
+ ; X64-AVX2-NEXT: vpaddd %ymm1, %ymm0, %ymm0
476
465
; X64-AVX2-NEXT: retq
477
466
;
478
467
; X64-AVX512DQ-LABEL: mul_v8i32_17:
479
468
; X64-AVX512DQ: # %bb.0:
480
- ; X64-AVX512DQ-NEXT: vpmulld {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm0, %ymm0
469
+ ; X64-AVX512DQ-NEXT: vpslld $4, %ymm0, %ymm1
470
+ ; X64-AVX512DQ-NEXT: vpaddd %ymm1, %ymm0, %ymm0
481
471
; X64-AVX512DQ-NEXT: retq
482
472
%1 = mul <8 x i32 > %a0 , <i32 17 , i32 17 , i32 17 , i32 17 , i32 17 , i32 17 , i32 17 , i32 17 >
483
473
ret <8 x i32 > %1
@@ -596,24 +586,13 @@ define <4 x i32> @mul_v4i32_neg33(<4 x i32> %a0) nounwind {
596
586
; SSE-NEXT: psubd %xmm1, %xmm0
597
587
; SSE-NEXT: ret{{[l|q]}}
598
588
;
599
- ; X64-XOP-LABEL: mul_v4i32_neg33:
600
- ; X64-XOP: # %bb.0:
601
- ; X64-XOP-NEXT: vpslld $5, %xmm0, %xmm1
602
- ; X64-XOP-NEXT: vpaddd %xmm1, %xmm0, %xmm0
603
- ; X64-XOP-NEXT: vpxor %xmm1, %xmm1, %xmm1
604
- ; X64-XOP-NEXT: vpsubd %xmm0, %xmm1, %xmm0
605
- ; X64-XOP-NEXT: retq
606
- ;
607
- ; X64-AVX2-LABEL: mul_v4i32_neg33:
608
- ; X64-AVX2: # %bb.0:
609
- ; X64-AVX2-NEXT: vpbroadcastd {{.*#+}} xmm1 = [4294967263,4294967263,4294967263,4294967263]
610
- ; X64-AVX2-NEXT: vpmulld %xmm1, %xmm0, %xmm0
611
- ; X64-AVX2-NEXT: retq
612
- ;
613
- ; X64-AVX512DQ-LABEL: mul_v4i32_neg33:
614
- ; X64-AVX512DQ: # %bb.0:
615
- ; X64-AVX512DQ-NEXT: vpmulld {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to4}, %xmm0, %xmm0
616
- ; X64-AVX512DQ-NEXT: retq
589
+ ; X64-AVX-LABEL: mul_v4i32_neg33:
590
+ ; X64-AVX: # %bb.0:
591
+ ; X64-AVX-NEXT: vpslld $5, %xmm0, %xmm1
592
+ ; X64-AVX-NEXT: vpaddd %xmm1, %xmm0, %xmm0
593
+ ; X64-AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
594
+ ; X64-AVX-NEXT: vpsubd %xmm0, %xmm1, %xmm0
595
+ ; X64-AVX-NEXT: retq
617
596
%1 = mul <4 x i32 > %a0 , <i32 -33 , i32 -33 , i32 -33 , i32 -33 >
618
597
ret <4 x i32 > %1
619
598
}
@@ -768,13 +747,18 @@ define <8 x i32> @mul_v8i32_neg33(<8 x i32> %a0) nounwind {
768
747
;
769
748
; X64-AVX2-LABEL: mul_v8i32_neg33:
770
749
; X64-AVX2: # %bb.0:
771
- ; X64-AVX2-NEXT: vpbroadcastd {{.*#+}} ymm1 = [4294967263,4294967263,4294967263,4294967263,4294967263,4294967263,4294967263,4294967263]
772
- ; X64-AVX2-NEXT: vpmulld %ymm1, %ymm0, %ymm0
750
+ ; X64-AVX2-NEXT: vpslld $5, %ymm0, %ymm1
751
+ ; X64-AVX2-NEXT: vpaddd %ymm1, %ymm0, %ymm0
752
+ ; X64-AVX2-NEXT: vpxor %xmm1, %xmm1, %xmm1
753
+ ; X64-AVX2-NEXT: vpsubd %ymm0, %ymm1, %ymm0
773
754
; X64-AVX2-NEXT: retq
774
755
;
775
756
; X64-AVX512DQ-LABEL: mul_v8i32_neg33:
776
757
; X64-AVX512DQ: # %bb.0:
777
- ; X64-AVX512DQ-NEXT: vpmulld {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm0, %ymm0
758
+ ; X64-AVX512DQ-NEXT: vpslld $5, %ymm0, %ymm1
759
+ ; X64-AVX512DQ-NEXT: vpaddd %ymm1, %ymm0, %ymm0
760
+ ; X64-AVX512DQ-NEXT: vpxor %xmm1, %xmm1, %xmm1
761
+ ; X64-AVX512DQ-NEXT: vpsubd %ymm0, %ymm1, %ymm0
778
762
; X64-AVX512DQ-NEXT: retq
779
763
%1 = mul <8 x i32 > %a0 , <i32 -33 , i32 -33 , i32 -33 , i32 -33 , i32 -33 , i32 -33 , i32 -33 , i32 -33 >
780
764
ret <8 x i32 > %1
@@ -1113,22 +1097,11 @@ define <4 x i32> @mul_v4i32_7(<4 x i32> %a0) nounwind {
1113
1097
; SSE-NEXT: movdqa %xmm1, %xmm0
1114
1098
; SSE-NEXT: ret{{[l|q]}}
1115
1099
;
1116
- ; X64-XOP-LABEL: mul_v4i32_7:
1117
- ; X64-XOP: # %bb.0:
1118
- ; X64-XOP-NEXT: vpslld $3, %xmm0, %xmm1
1119
- ; X64-XOP-NEXT: vpsubd %xmm0, %xmm1, %xmm0
1120
- ; X64-XOP-NEXT: retq
1121
- ;
1122
- ; X64-AVX2-LABEL: mul_v4i32_7:
1123
- ; X64-AVX2: # %bb.0:
1124
- ; X64-AVX2-NEXT: vpbroadcastd {{.*#+}} xmm1 = [7,7,7,7]
1125
- ; X64-AVX2-NEXT: vpmulld %xmm1, %xmm0, %xmm0
1126
- ; X64-AVX2-NEXT: retq
1127
- ;
1128
- ; X64-AVX512DQ-LABEL: mul_v4i32_7:
1129
- ; X64-AVX512DQ: # %bb.0:
1130
- ; X64-AVX512DQ-NEXT: vpmulld {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to4}, %xmm0, %xmm0
1131
- ; X64-AVX512DQ-NEXT: retq
1100
+ ; X64-AVX-LABEL: mul_v4i32_7:
1101
+ ; X64-AVX: # %bb.0:
1102
+ ; X64-AVX-NEXT: vpslld $3, %xmm0, %xmm1
1103
+ ; X64-AVX-NEXT: vpsubd %xmm0, %xmm1, %xmm0
1104
+ ; X64-AVX-NEXT: retq
1132
1105
%1 = mul <4 x i32 > %a0 , <i32 7 , i32 7 , i32 7 , i32 7 >
1133
1106
ret <4 x i32 > %1
1134
1107
}
@@ -1222,22 +1195,11 @@ define <4 x i32> @mul_v4i32_neg63(<4 x i32> %a0) nounwind {
1222
1195
; SSE-NEXT: psubd %xmm1, %xmm0
1223
1196
; SSE-NEXT: ret{{[l|q]}}
1224
1197
;
1225
- ; X64-XOP-LABEL: mul_v4i32_neg63:
1226
- ; X64-XOP: # %bb.0:
1227
- ; X64-XOP-NEXT: vpslld $6, %xmm0, %xmm1
1228
- ; X64-XOP-NEXT: vpsubd %xmm1, %xmm0, %xmm0
1229
- ; X64-XOP-NEXT: retq
1230
- ;
1231
- ; X64-AVX2-LABEL: mul_v4i32_neg63:
1232
- ; X64-AVX2: # %bb.0:
1233
- ; X64-AVX2-NEXT: vpbroadcastd {{.*#+}} xmm1 = [4294967233,4294967233,4294967233,4294967233]
1234
- ; X64-AVX2-NEXT: vpmulld %xmm1, %xmm0, %xmm0
1235
- ; X64-AVX2-NEXT: retq
1236
- ;
1237
- ; X64-AVX512DQ-LABEL: mul_v4i32_neg63:
1238
- ; X64-AVX512DQ: # %bb.0:
1239
- ; X64-AVX512DQ-NEXT: vpmulld {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to4}, %xmm0, %xmm0
1240
- ; X64-AVX512DQ-NEXT: retq
1198
+ ; X64-AVX-LABEL: mul_v4i32_neg63:
1199
+ ; X64-AVX: # %bb.0:
1200
+ ; X64-AVX-NEXT: vpslld $6, %xmm0, %xmm1
1201
+ ; X64-AVX-NEXT: vpsubd %xmm1, %xmm0, %xmm0
1202
+ ; X64-AVX-NEXT: retq
1241
1203
%1 = mul <4 x i32 > %a0 , <i32 -63 , i32 -63 , i32 -63 , i32 -63 >
1242
1204
ret <4 x i32 > %1
1243
1205
}
0 commit comments