@@ -9,14 +9,12 @@ declare <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8>, <16 x i8>) nounwind
9
9
define <4 x i32 > @combine_pmaddwd_zero (<8 x i16 > %a0 , <8 x i16 > %a1 ) {
10
10
; SSE-LABEL: combine_pmaddwd_zero:
11
11
; SSE: # %bb.0:
12
- ; SSE-NEXT: pxor %xmm1, %xmm1
13
- ; SSE-NEXT: pmaddwd %xmm1, %xmm0
12
+ ; SSE-NEXT: xorps %xmm0, %xmm0
14
13
; SSE-NEXT: retq
15
14
;
16
15
; AVX-LABEL: combine_pmaddwd_zero:
17
16
; AVX: # %bb.0:
18
- ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
19
- ; AVX-NEXT: vpmaddwd %xmm1, %xmm0, %xmm0
17
+ ; AVX-NEXT: vxorps %xmm0, %xmm0, %xmm0
20
18
; AVX-NEXT: retq
21
19
%1 = call <4 x i32 > @llvm.x86.sse2.pmadd.wd (<8 x i16 > %a0 , <8 x i16 > zeroinitializer )
22
20
ret <4 x i32 > %1
@@ -25,14 +23,12 @@ define <4 x i32> @combine_pmaddwd_zero(<8 x i16> %a0, <8 x i16> %a1) {
25
23
define <4 x i32 > @combine_pmaddwd_zero_commute (<8 x i16 > %a0 , <8 x i16 > %a1 ) {
26
24
; SSE-LABEL: combine_pmaddwd_zero_commute:
27
25
; SSE: # %bb.0:
28
- ; SSE-NEXT: pxor %xmm1, %xmm1
29
- ; SSE-NEXT: pmaddwd %xmm1, %xmm0
26
+ ; SSE-NEXT: xorps %xmm0, %xmm0
30
27
; SSE-NEXT: retq
31
28
;
32
29
; AVX-LABEL: combine_pmaddwd_zero_commute:
33
30
; AVX: # %bb.0:
34
- ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
35
- ; AVX-NEXT: vpmaddwd %xmm0, %xmm1, %xmm0
31
+ ; AVX-NEXT: vxorps %xmm0, %xmm0, %xmm0
36
32
; AVX-NEXT: retq
37
33
%1 = call <4 x i32 > @llvm.x86.sse2.pmadd.wd (<8 x i16 > zeroinitializer , <8 x i16 > %a0 )
38
34
ret <4 x i32 > %1
@@ -41,14 +37,12 @@ define <4 x i32> @combine_pmaddwd_zero_commute(<8 x i16> %a0, <8 x i16> %a1) {
41
37
define <8 x i16 > @combine_pmaddubsw_zero (<16 x i8 > %a0 , <16 x i8 > %a1 ) {
42
38
; SSE-LABEL: combine_pmaddubsw_zero:
43
39
; SSE: # %bb.0:
44
- ; SSE-NEXT: pxor %xmm1, %xmm1
45
- ; SSE-NEXT: pmaddubsw %xmm1, %xmm0
40
+ ; SSE-NEXT: xorps %xmm0, %xmm0
46
41
; SSE-NEXT: retq
47
42
;
48
43
; AVX-LABEL: combine_pmaddubsw_zero:
49
44
; AVX: # %bb.0:
50
- ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
51
- ; AVX-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm0
45
+ ; AVX-NEXT: vxorps %xmm0, %xmm0, %xmm0
52
46
; AVX-NEXT: retq
53
47
%1 = call <8 x i16 > @llvm.x86.ssse3.pmadd.ub.sw.128 (<16 x i8 > %a0 , <16 x i8 > zeroinitializer )
54
48
ret <8 x i16 > %1
@@ -57,15 +51,12 @@ define <8 x i16> @combine_pmaddubsw_zero(<16 x i8> %a0, <16 x i8> %a1) {
57
51
define <8 x i16 > @combine_pmaddubsw_zero_commute (<16 x i8 > %a0 , <16 x i8 > %a1 ) {
58
52
; SSE-LABEL: combine_pmaddubsw_zero_commute:
59
53
; SSE: # %bb.0:
60
- ; SSE-NEXT: pxor %xmm1, %xmm1
61
- ; SSE-NEXT: pmaddubsw %xmm0, %xmm1
62
- ; SSE-NEXT: movdqa %xmm1, %xmm0
54
+ ; SSE-NEXT: xorps %xmm0, %xmm0
63
55
; SSE-NEXT: retq
64
56
;
65
57
; AVX-LABEL: combine_pmaddubsw_zero_commute:
66
58
; AVX: # %bb.0:
67
- ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
68
- ; AVX-NEXT: vpmaddubsw %xmm0, %xmm1, %xmm0
59
+ ; AVX-NEXT: vxorps %xmm0, %xmm0, %xmm0
69
60
; AVX-NEXT: retq
70
61
%1 = call <8 x i16 > @llvm.x86.ssse3.pmadd.ub.sw.128 (<16 x i8 > zeroinitializer , <16 x i8 > %a0 )
71
62
ret <8 x i16 > %1
0 commit comments