Skip to content

Commit fb222aa

Browse files
committed
[X86] Add a couple of missed ADD combine tests
Noticed while investigating PR40483 llvm-svn: 353042
1 parent 9899967 commit fb222aa

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

llvm/test/CodeGen/X86/combine-add.ll

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,48 @@ define <4 x i32> @combine_vec_add_sub1(<4 x i32> %a, <4 x i32> %b) {
9999
ret <4 x i32> %2
100100
}
101101

102+
; FIXME: fold ((A-B)+(C-A)) -> (C-B)
103+
define <4 x i32> @combine_vec_add_sub_sub0(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) {
104+
; SSE-LABEL: combine_vec_add_sub_sub0:
105+
; SSE: # %bb.0:
106+
; SSE-NEXT: psubd %xmm0, %xmm2
107+
; SSE-NEXT: psubd %xmm1, %xmm0
108+
; SSE-NEXT: paddd %xmm2, %xmm0
109+
; SSE-NEXT: retq
110+
;
111+
; AVX-LABEL: combine_vec_add_sub_sub0:
112+
; AVX: # %bb.0:
113+
; AVX-NEXT: vpsubd %xmm1, %xmm0, %xmm1
114+
; AVX-NEXT: vpsubd %xmm0, %xmm2, %xmm0
115+
; AVX-NEXT: vpaddd %xmm0, %xmm1, %xmm0
116+
; AVX-NEXT: retq
117+
%1 = sub <4 x i32> %a, %b
118+
%2 = sub <4 x i32> %c, %a
119+
%3 = add <4 x i32> %1, %2
120+
ret <4 x i32> %3
121+
}
122+
123+
; FIXME: fold ((A-B)+(B-C)) -> (A-C)
124+
define <4 x i32> @combine_vec_add_sub_sub1(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) {
125+
; SSE-LABEL: combine_vec_add_sub_sub1:
126+
; SSE: # %bb.0:
127+
; SSE-NEXT: psubd %xmm1, %xmm0
128+
; SSE-NEXT: psubd %xmm2, %xmm1
129+
; SSE-NEXT: paddd %xmm1, %xmm0
130+
; SSE-NEXT: retq
131+
;
132+
; AVX-LABEL: combine_vec_add_sub_sub1:
133+
; AVX: # %bb.0:
134+
; AVX-NEXT: vpsubd %xmm1, %xmm0, %xmm0
135+
; AVX-NEXT: vpsubd %xmm2, %xmm1, %xmm1
136+
; AVX-NEXT: vpaddd %xmm1, %xmm0, %xmm0
137+
; AVX-NEXT: retq
138+
%1 = sub <4 x i32> %a, %b
139+
%2 = sub <4 x i32> %b, %c
140+
%3 = add <4 x i32> %1, %2
141+
ret <4 x i32> %3
142+
}
143+
102144
; fold (A+(B-(A+C))) to (B-C)
103145
define <4 x i32> @combine_vec_add_sub_add0(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) {
104146
; SSE-LABEL: combine_vec_add_sub_add0:

0 commit comments

Comments
 (0)