summaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/AArch64/ctlz.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/AArch64/ctlz.ll')
-rw-r--r--llvm/test/CodeGen/AArch64/ctlz.ll18
1 files changed, 7 insertions, 11 deletions
diff --git a/llvm/test/CodeGen/AArch64/ctlz.ll b/llvm/test/CodeGen/AArch64/ctlz.ll
index 04124609eec7..b1b869ec9e1f 100644
--- a/llvm/test/CodeGen/AArch64/ctlz.ll
+++ b/llvm/test/CodeGen/AArch64/ctlz.ll
@@ -6,11 +6,10 @@
define void @v2i8(ptr %p1) {
; CHECK-SD-LABEL: v2i8:
; CHECK-SD: // %bb.0: // %entry
-; CHECK-SD-NEXT: ldrb w8, [x0]
-; CHECK-SD-NEXT: ldrb w9, [x0, #1]
+; CHECK-SD-NEXT: ldr h1, [x0]
; CHECK-SD-NEXT: movi v0.2s, #24
-; CHECK-SD-NEXT: fmov s1, w8
-; CHECK-SD-NEXT: mov v1.s[1], w9
+; CHECK-SD-NEXT: ushll v1.8h, v1.8b, #0
+; CHECK-SD-NEXT: ushll v1.4s, v1.4h, #0
; CHECK-SD-NEXT: clz v1.2s, v1.2s
; CHECK-SD-NEXT: sub v0.2s, v1.2s, v0.2s
; CHECK-SD-NEXT: mov s1, v0.s[1]
@@ -47,10 +46,9 @@ define void @v3i8(ptr %p1) {
; CHECK-SD-NEXT: sub v0.4h, v1.4h, v0.4h
; CHECK-SD-NEXT: uzp1 v1.8b, v0.8b, v0.8b
; CHECK-SD-NEXT: mov h0, v0.h[2]
-; CHECK-SD-NEXT: str s1, [sp, #12]
-; CHECK-SD-NEXT: ldrh w8, [sp, #12]
+; CHECK-SD-NEXT: ushll v1.4s, v1.4h, #0
; CHECK-SD-NEXT: stur b0, [x0, #2]
-; CHECK-SD-NEXT: strh w8, [x0]
+; CHECK-SD-NEXT: str h1, [x0]
; CHECK-SD-NEXT: add sp, sp, #16
; CHECK-SD-NEXT: ret
;
@@ -145,11 +143,9 @@ entry:
define void @v2i16(ptr %p1) {
; CHECK-SD-LABEL: v2i16:
; CHECK-SD: // %bb.0: // %entry
-; CHECK-SD-NEXT: ldrh w8, [x0]
-; CHECK-SD-NEXT: ldrh w9, [x0, #2]
+; CHECK-SD-NEXT: ldr s1, [x0]
; CHECK-SD-NEXT: movi v0.2s, #16
-; CHECK-SD-NEXT: fmov s1, w8
-; CHECK-SD-NEXT: mov v1.s[1], w9
+; CHECK-SD-NEXT: ushll v1.4s, v1.4h, #0
; CHECK-SD-NEXT: clz v1.2s, v1.2s
; CHECK-SD-NEXT: sub v0.2s, v1.2s, v0.2s
; CHECK-SD-NEXT: mov s1, v0.s[1]