@@ -834,7 +834,6 @@ define <4 x i32> @combine_vec_shl_mul1(<4 x i32> %x) {
834
834
}
835
835
836
836
; fold (add (shl x, c1), c2) -> (or (shl x, c1), c2)
837
- ; TODO: Handle minimum shift value case
838
837
define <4 x i32 > @combine_vec_add_shl_nonsplat (<4 x i32 > %a0 ) {
839
838
; SSE2-LABEL: combine_vec_add_shl_nonsplat:
840
839
; SSE2: # %bb.0:
@@ -846,7 +845,7 @@ define <4 x i32> @combine_vec_add_shl_nonsplat(<4 x i32> %a0) {
846
845
; SSE2-NEXT: pmuludq %xmm2, %xmm1
847
846
; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]
848
847
; SSE2-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
849
- ; SSE2-NEXT: paddd {{.*}}(%rip), %xmm0
848
+ ; SSE2-NEXT: por {{.*}}(%rip), %xmm0
850
849
; SSE2-NEXT: retq
851
850
;
852
851
; SSE41-LABEL: combine_vec_add_shl_nonsplat:
@@ -859,7 +858,7 @@ define <4 x i32> @combine_vec_add_shl_nonsplat(<4 x i32> %a0) {
859
858
; AVX: # %bb.0:
860
859
; AVX-NEXT: vpsllvd {{.*}}(%rip), %xmm0, %xmm0
861
860
; AVX-NEXT: vpbroadcastd {{.*#+}} xmm1 = [3,3,3,3]
862
- ; AVX-NEXT: vpaddd %xmm1, %xmm0, %xmm0
861
+ ; AVX-NEXT: vpor %xmm1, %xmm0, %xmm0
863
862
; AVX-NEXT: retq
864
863
%1 = shl <4 x i32 > %a0 , <i32 2 , i32 3 , i32 4 , i32 5 >
865
864
%2 = add <4 x i32 > %1 , <i32 3 , i32 3 , i32 3 , i32 3 >
0 commit comments