@@ -73,23 +73,17 @@ define <2 x i64> @freeze_zext_vec(<2 x i16> %a0) nounwind {
7373define i32 @freeze_abs (i32 %a0 ) nounwind {
7474; X86-LABEL: freeze_abs:
7575; X86: # %bb.0:
76- ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
77- ; X86-NEXT: movl %eax, %ecx
78- ; X86-NEXT: negl %ecx
79- ; X86-NEXT: cmovsl %eax, %ecx
76+ ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
8077; X86-NEXT: movl %ecx, %eax
8178; X86-NEXT: negl %eax
8279; X86-NEXT: cmovsl %ecx, %eax
8380; X86-NEXT: retl
8481;
8582; X64-LABEL: freeze_abs:
8683; X64: # %bb.0:
87- ; X64-NEXT: movl %edi, %ecx
88- ; X64-NEXT: negl %ecx
89- ; X64-NEXT: cmovsl %edi, %ecx
90- ; X64-NEXT: movl %ecx, %eax
84+ ; X64-NEXT: movl %edi, %eax
9185; X64-NEXT: negl %eax
92- ; X64-NEXT: cmovsl %ecx , %eax
86+ ; X64-NEXT: cmovsl %edi , %eax
9387; X64-NEXT: retq
9488 %x = call i32 @llvm.abs.i32 (i32 %a0 , i1 0 )
9589 %f = freeze i32 %x
@@ -104,16 +98,11 @@ define <4 x i32> @freeze_abs_vec(<4 x i32> %a0) nounwind {
10498; X86-NEXT: psrad $31, %xmm1
10599; X86-NEXT: pxor %xmm1, %xmm0
106100; X86-NEXT: psubd %xmm1, %xmm0
107- ; X86-NEXT: movdqa %xmm0, %xmm1
108- ; X86-NEXT: psrad $31, %xmm1
109- ; X86-NEXT: pxor %xmm1, %xmm0
110- ; X86-NEXT: psubd %xmm1, %xmm0
111101; X86-NEXT: retl
112102;
113103; X64-LABEL: freeze_abs_vec:
114104; X64: # %bb.0:
115105; X64-NEXT: pabsd %xmm0, %xmm0
116- ; X64-NEXT: pabsd %xmm0, %xmm0
117106; X64-NEXT: retq
118107 %x = call <4 x i32 > @llvm.abs.v4i32 (<4 x i32 > %a0 , i1 0 )
119108 %f = freeze <4 x i32 > %x
@@ -124,23 +113,17 @@ define <4 x i32> @freeze_abs_vec(<4 x i32> %a0) nounwind {
124113define i32 @freeze_abs_undef (i32 %a0 ) nounwind {
125114; X86-LABEL: freeze_abs_undef:
126115; X86: # %bb.0:
127- ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
128- ; X86-NEXT: movl %eax, %ecx
129- ; X86-NEXT: negl %ecx
130- ; X86-NEXT: cmovsl %eax, %ecx
116+ ; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
131117; X86-NEXT: movl %ecx, %eax
132118; X86-NEXT: negl %eax
133119; X86-NEXT: cmovsl %ecx, %eax
134120; X86-NEXT: retl
135121;
136122; X64-LABEL: freeze_abs_undef:
137123; X64: # %bb.0:
138- ; X64-NEXT: movl %edi, %ecx
139- ; X64-NEXT: negl %ecx
140- ; X64-NEXT: cmovsl %edi, %ecx
141- ; X64-NEXT: movl %ecx, %eax
124+ ; X64-NEXT: movl %edi, %eax
142125; X64-NEXT: negl %eax
143- ; X64-NEXT: cmovsl %ecx , %eax
126+ ; X64-NEXT: cmovsl %edi , %eax
144127; X64-NEXT: retq
145128 %x = call i32 @llvm.abs.i32 (i32 %a0 , i1 -1 )
146129 %f = freeze i32 %x
@@ -155,16 +138,11 @@ define <4 x i32> @freeze_abs_undef_vec(<4 x i32> %a0) nounwind {
155138; X86-NEXT: psrad $31, %xmm1
156139; X86-NEXT: pxor %xmm1, %xmm0
157140; X86-NEXT: psubd %xmm1, %xmm0
158- ; X86-NEXT: movdqa %xmm0, %xmm1
159- ; X86-NEXT: psrad $31, %xmm1
160- ; X86-NEXT: pxor %xmm1, %xmm0
161- ; X86-NEXT: psubd %xmm1, %xmm0
162141; X86-NEXT: retl
163142;
164143; X64-LABEL: freeze_abs_undef_vec:
165144; X64: # %bb.0:
166145; X64-NEXT: pabsd %xmm0, %xmm0
167- ; X64-NEXT: pabsd %xmm0, %xmm0
168146; X64-NEXT: retq
169147 %x = call <4 x i32 > @llvm.abs.v4i32 (<4 x i32 > %a0 , i1 -1 )
170148 %f = freeze <4 x i32 > %x
0 commit comments