aarch64: Add popcnt for i128 values

This commit is contained in:
Afonso Bordado
2021-06-02 17:35:02 +01:00
parent 5140fd251a
commit 09fec151eb
3 changed files with 77 additions and 13 deletions

View File

@@ -207,6 +207,24 @@ block0(v0: i64):
; nextln: ldp fp, lr, [sp], #16
; nextln: ret
function %d(i128) -> i128 {
block0(v0: i128):
v1 = popcnt v0
return v1
}
; check: stp fp, lr, [sp, #-16]!
; nextln: mov fp, sp
; nextln: fmov d0, x0
; nextln: mov v0.d[1], x1
; nextln: cnt v0.16b, v0.16b
; nextln: addv b0, v0.16b
; nextln: umov w0, v0.b[0]
; nextln: movz x1, #0
; nextln: ldp fp, lr, [sp], #16
; nextln: ret
function %d(i64) -> i64 {
block0(v0: i64):
v1 = popcnt v0