Skip to content

Commit 4fc15a6

Browse files
committed
add v1i64 test
1 parent 39e82eb commit 4fc15a6

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

llvm/test/CodeGen/AArch64/popcount.ll

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,33 @@ Entry:
172172

173173
declare <2 x i64> @llvm.ctpop.v2i64(<2 x i64>)
174174

175+
define <1 x i64> @popcount1x64(<1 x i64> %0) {
176+
; CHECKO0-LABEL: popcount1x64:
177+
; CHECKO0: // %bb.0: // %Entry
178+
; CHECKO0-NEXT: fmov x0, d0
179+
; CHECKO0-NEXT: fmov d0, x0
180+
; CHECKO0-NEXT: cnt v0.8b, v0.8b
181+
; CHECKO0-NEXT: uaddlv h0, v0.8b
182+
; CHECKO0-NEXT: // kill: def $q0 killed $h0
183+
; CHECKO0-NEXT: mov w8, v0.s[0]
184+
; CHECKO0-NEXT: // kill: def $x8 killed $w8
185+
; CHECKO0-NEXT: fmov d0, x8
186+
; CHECKO0-NEXT: ret
187+
;
188+
; CHECK-LABEL: popcount1x64:
189+
; CHECK: // %bb.0: // %Entry
190+
; CHECK-NEXT: cnt v0.8b, v0.8b
191+
; CHECK-NEXT: uaddlp v0.4h, v0.8b
192+
; CHECK-NEXT: uaddlp v0.2s, v0.4h
193+
; CHECK-NEXT: uaddlp v0.1d, v0.2s
194+
; CHECK-NEXT: ret
195+
Entry:
196+
%1 = tail call <1 x i64> @llvm.ctpop.v1i64(<1 x i64> %0)
197+
ret <1 x i64> %1
198+
}
199+
200+
declare <1 x i64> @llvm.ctpop.v1i64(<1 x i64>)
201+
175202
define <4 x i32> @popcount4x32(<4 x i32> %0) {
176203
; CHECKO0-LABEL: popcount4x32:
177204
; CHECKO0: // %bb.0: // %Entry

0 commit comments

Comments
 (0)