@@ -129,24 +129,17 @@ declare <4 x i32> @llvm.bitreverse.v4i32(<4 x i32>)
129129define i32 @freeze_ctlz (i32 %a0 ) nounwind {
130130; X86-LABEL: freeze_ctlz:
131131; X86: # %bb.0:
132- ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
133- ; X86-NEXT: bsrl %eax, %ecx
134- ; X86-NEXT: movl $63, %edx
135- ; X86-NEXT: cmovnel %ecx, %edx
136- ; X86-NEXT: xorl $31, %edx
137- ; X86-NEXT: testl %eax, %eax
138- ; X86-NEXT: movl $32, %eax
139- ; X86-NEXT: cmovnel %edx, %eax
132+ ; X86-NEXT: bsrl {{[0-9]+}}(%esp), %ecx
133+ ; X86-NEXT: movl $63, %eax
134+ ; X86-NEXT: cmovnel %ecx, %eax
135+ ; X86-NEXT: xorl $31, %eax
140136; X86-NEXT: retl
141137;
142138; X64-LABEL: freeze_ctlz:
143139; X64: # %bb.0:
144- ; X64-NEXT: movl $63, %ecx
145- ; X64-NEXT: bsrl %edi, %ecx
146- ; X64-NEXT: xorl $31, %ecx
147- ; X64-NEXT: testl %edi, %edi
148- ; X64-NEXT: movl $32, %eax
149- ; X64-NEXT: cmovnel %ecx, %eax
140+ ; X64-NEXT: movl $63, %eax
141+ ; X64-NEXT: bsrl %edi, %eax
142+ ; X64-NEXT: xorl $31, %eax
150143; X64-NEXT: retq
151144 %x = call i32 @llvm.ctlz.i32 (i32 %a0 , i1 0 )
152145 %f = freeze i32 %x
@@ -215,19 +208,15 @@ define i32 @freeze_ctlz_undef_nonzero(i32 %a0) nounwind {
215208define i32 @freeze_cttz (i32 %a0 ) nounwind {
216209; X86-LABEL: freeze_cttz:
217210; X86: # %bb.0:
218- ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
219- ; X86-NEXT: bsfl %eax, %eax
220- ; X86-NEXT: movl $32, %ecx
221- ; X86-NEXT: cmovel %ecx, %eax
222- ; X86-NEXT: cmovel %ecx, %eax
211+ ; X86-NEXT: bsfl {{[0-9]+}}(%esp), %ecx
212+ ; X86-NEXT: movl $32, %eax
213+ ; X86-NEXT: cmovnel %ecx, %eax
223214; X86-NEXT: retl
224215;
225216; X64-LABEL: freeze_cttz:
226217; X64: # %bb.0:
227- ; X64-NEXT: movl $32, %ecx
228218; X64-NEXT: movl $32, %eax
229- ; X64-NEXT: bsfl %edi, %eax
230- ; X64-NEXT: cmovel %ecx, %eax
219+ ; X64-NEXT: rep bsfl %edi, %eax
231220; X64-NEXT: retq
232221 %x = call i32 @llvm.cttz.i32 (i32 %a0 , i1 0 )
233222 %f = freeze i32 %x
0 commit comments