@@ -15,7 +15,7 @@ define i32 @cnt32_advsimd(i32 %x) nounwind readnone {
1515; CHECK-NONEON-LABEL: cnt32_advsimd:
1616; CHECK-NONEON: // %bb.0:
1717; CHECK-NONEON-NEXT: lsr w9, w0, #1
18- ; CHECK-NONEON-NEXT: mov w8, #16843009 // =0x1010101
18+ ; CHECK-NONEON-NEXT: mov w8, #16843009
1919; CHECK-NONEON-NEXT: and w9, w9, #0x55555555
2020; CHECK-NONEON-NEXT: sub w9, w0, w9
2121; CHECK-NONEON-NEXT: lsr w10, w9, #2
@@ -50,7 +50,7 @@ define i32 @cnt32_advsimd_2(<2 x i32> %x) {
5050; CHECK-NONEON-LABEL: cnt32_advsimd_2:
5151; CHECK-NONEON: // %bb.0:
5252; CHECK-NONEON-NEXT: lsr w9, w0, #1
53- ; CHECK-NONEON-NEXT: mov w8, #16843009 // =0x1010101
53+ ; CHECK-NONEON-NEXT: mov w8, #16843009
5454; CHECK-NONEON-NEXT: and w9, w9, #0x55555555
5555; CHECK-NONEON-NEXT: sub w9, w0, w9
5656; CHECK-NONEON-NEXT: lsr w10, w9, #2
@@ -86,7 +86,7 @@ define i64 @cnt64_advsimd(i64 %x) nounwind readnone {
8686; CHECK-NONEON-LABEL: cnt64_advsimd:
8787; CHECK-NONEON: // %bb.0:
8888; CHECK-NONEON-NEXT: lsr x9, x0, #1
89- ; CHECK-NONEON-NEXT: mov x8, #72340172838076673 // =0x101010101010101
89+ ; CHECK-NONEON-NEXT: mov x8, #72340172838076673
9090; CHECK-NONEON-NEXT: and x9, x9, #0x5555555555555555
9191; CHECK-NONEON-NEXT: sub x9, x0, x9
9292; CHECK-NONEON-NEXT: lsr x10, x9, #2
@@ -114,7 +114,7 @@ define i32 @cnt32(i32 %x) nounwind readnone noimplicitfloat {
114114; CHECK-LABEL: cnt32:
115115; CHECK: // %bb.0:
116116; CHECK-NEXT: lsr w9, w0, #1
117- ; CHECK-NEXT: mov w8, #16843009 // =0x1010101
117+ ; CHECK-NEXT: mov w8, #16843009
118118; CHECK-NEXT: and w9, w9, #0x55555555
119119; CHECK-NEXT: sub w9, w0, w9
120120; CHECK-NEXT: lsr w10, w9, #2
@@ -130,7 +130,7 @@ define i32 @cnt32(i32 %x) nounwind readnone noimplicitfloat {
130130; CHECK-NONEON-LABEL: cnt32:
131131; CHECK-NONEON: // %bb.0:
132132; CHECK-NONEON-NEXT: lsr w9, w0, #1
133- ; CHECK-NONEON-NEXT: mov w8, #16843009 // =0x1010101
133+ ; CHECK-NONEON-NEXT: mov w8, #16843009
134134; CHECK-NONEON-NEXT: and w9, w9, #0x55555555
135135; CHECK-NONEON-NEXT: sub w9, w0, w9
136136; CHECK-NONEON-NEXT: lsr w10, w9, #2
@@ -155,7 +155,7 @@ define i64 @cnt64(i64 %x) nounwind readnone noimplicitfloat {
155155; CHECK-LABEL: cnt64:
156156; CHECK: // %bb.0:
157157; CHECK-NEXT: lsr x9, x0, #1
158- ; CHECK-NEXT: mov x8, #72340172838076673 // =0x101010101010101
158+ ; CHECK-NEXT: mov x8, #72340172838076673
159159; CHECK-NEXT: and x9, x9, #0x5555555555555555
160160; CHECK-NEXT: sub x9, x0, x9
161161; CHECK-NEXT: lsr x10, x9, #2
@@ -171,7 +171,7 @@ define i64 @cnt64(i64 %x) nounwind readnone noimplicitfloat {
171171; CHECK-NONEON-LABEL: cnt64:
172172; CHECK-NONEON: // %bb.0:
173173; CHECK-NONEON-NEXT: lsr x9, x0, #1
174- ; CHECK-NONEON-NEXT: mov x8, #72340172838076673 // =0x101010101010101
174+ ; CHECK-NONEON-NEXT: mov x8, #72340172838076673
175175; CHECK-NONEON-NEXT: and x9, x9, #0x5555555555555555
176176; CHECK-NONEON-NEXT: sub x9, x0, x9
177177; CHECK-NONEON-NEXT: lsr x10, x9, #2
@@ -278,59 +278,5 @@ define i1 @ctpop32_ne_one(i32 %x) nounwind readnone {
278278 ret i1 %cmp
279279}
280280
281- define i1 @ctpop32_eq_one_nonzero (i32 %x ) {
282- ; CHECK-LABEL: ctpop32_eq_one_nonzero:
283- ; CHECK: // %bb.0: // %entry
284- ; CHECK-NEXT: sub w8, w0, #1
285- ; CHECK-NEXT: tst w0, w8
286- ; CHECK-NEXT: cset w0, eq
287- ; CHECK-NEXT: ret
288- ;
289- ; CHECK-NONEON-LABEL: ctpop32_eq_one_nonzero:
290- ; CHECK-NONEON: // %bb.0: // %entry
291- ; CHECK-NONEON-NEXT: sub w8, w0, #1
292- ; CHECK-NONEON-NEXT: tst w0, w8
293- ; CHECK-NONEON-NEXT: cset w0, eq
294- ; CHECK-NONEON-NEXT: ret
295- ;
296- ; CHECK-CSSC-LABEL: ctpop32_eq_one_nonzero:
297- ; CHECK-CSSC: // %bb.0: // %entry
298- ; CHECK-CSSC-NEXT: sub w8, w0, #1
299- ; CHECK-CSSC-NEXT: tst w0, w8
300- ; CHECK-CSSC-NEXT: cset w0, eq
301- ; CHECK-CSSC-NEXT: ret
302- entry:
303- %popcnt = call range(i32 1 , 33 ) i32 @llvm.ctpop.i32 (i32 %x )
304- %cmp = icmp eq i32 %popcnt , 1
305- ret i1 %cmp
306- }
307-
308- define i1 @ctpop32_ne_one_nonzero (i32 %x ) {
309- ; CHECK-LABEL: ctpop32_ne_one_nonzero:
310- ; CHECK: // %bb.0: // %entry
311- ; CHECK-NEXT: sub w8, w0, #1
312- ; CHECK-NEXT: tst w0, w8
313- ; CHECK-NEXT: cset w0, ne
314- ; CHECK-NEXT: ret
315- ;
316- ; CHECK-NONEON-LABEL: ctpop32_ne_one_nonzero:
317- ; CHECK-NONEON: // %bb.0: // %entry
318- ; CHECK-NONEON-NEXT: sub w8, w0, #1
319- ; CHECK-NONEON-NEXT: tst w0, w8
320- ; CHECK-NONEON-NEXT: cset w0, ne
321- ; CHECK-NONEON-NEXT: ret
322- ;
323- ; CHECK-CSSC-LABEL: ctpop32_ne_one_nonzero:
324- ; CHECK-CSSC: // %bb.0: // %entry
325- ; CHECK-CSSC-NEXT: sub w8, w0, #1
326- ; CHECK-CSSC-NEXT: tst w0, w8
327- ; CHECK-CSSC-NEXT: cset w0, ne
328- ; CHECK-CSSC-NEXT: ret
329- entry:
330- %popcnt = tail call range(i32 1 , 33 ) i32 @llvm.ctpop.i32 (i32 %x )
331- %cmp = icmp ne i32 %popcnt , 1
332- ret i1 %cmp
333- }
334-
335281declare i32 @llvm.ctpop.i32 (i32 ) nounwind readnone
336282declare i64 @llvm.ctpop.i64 (i64 ) nounwind readnone
0 commit comments