@@ -129,24 +129,17 @@ declare <4 x i32> @llvm.bitreverse.v4i32(<4 x i32>)
129
129
define i32 @freeze_ctlz (i32 %a0 ) nounwind {
130
130
; X86-LABEL: freeze_ctlz:
131
131
; 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
140
136
; X86-NEXT: retl
141
137
;
142
138
; X64-LABEL: freeze_ctlz:
143
139
; 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
150
143
; X64-NEXT: retq
151
144
%x = call i32 @llvm.ctlz.i32 (i32 %a0 , i1 0 )
152
145
%f = freeze i32 %x
@@ -215,19 +208,15 @@ define i32 @freeze_ctlz_undef_nonzero(i32 %a0) nounwind {
215
208
define i32 @freeze_cttz (i32 %a0 ) nounwind {
216
209
; X86-LABEL: freeze_cttz:
217
210
; 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
223
214
; X86-NEXT: retl
224
215
;
225
216
; X64-LABEL: freeze_cttz:
226
217
; X64: # %bb.0:
227
- ; X64-NEXT: movl $32, %ecx
228
218
; X64-NEXT: movl $32, %eax
229
- ; X64-NEXT: bsfl %edi, %eax
230
- ; X64-NEXT: cmovel %ecx, %eax
219
+ ; X64-NEXT: rep bsfl %edi, %eax
231
220
; X64-NEXT: retq
232
221
%x = call i32 @llvm.cttz.i32 (i32 %a0 , i1 0 )
233
222
%f = freeze i32 %x
0 commit comments