aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/AArch64/win64_vararg.ll
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2018-07-28 10:51:19 +0000
committerDimitry Andric <dim@FreeBSD.org>2018-07-28 10:51:19 +0000
commiteb11fae6d08f479c0799db45860a98af528fa6e7 (patch)
tree44d492a50c8c1a7eb8e2d17ea3360ec4d066f042 /test/CodeGen/AArch64/win64_vararg.ll
parentb8a2042aa938069e862750553db0e4d82d25822c (diff)
Notes
Diffstat (limited to 'test/CodeGen/AArch64/win64_vararg.ll')
-rw-r--r--test/CodeGen/AArch64/win64_vararg.ll33
1 files changed, 16 insertions, 17 deletions
diff --git a/test/CodeGen/AArch64/win64_vararg.ll b/test/CodeGen/AArch64/win64_vararg.ll
index 6fcbfcb62dcf..9cc9f50adb77 100644
--- a/test/CodeGen/AArch64/win64_vararg.ll
+++ b/test/CodeGen/AArch64/win64_vararg.ll
@@ -159,27 +159,28 @@ attributes #6 = { "no-frame-pointer-elim"="true" }
; CHECK: stur x8, [x29, #-40]
; CHECK: mov w8, w0
; CHECK: add x8, x8, #15
-; CHECK: mov x9, sp
-; CHECK: and x8, x8, #0x1fffffff0
-; CHECK: sub x20, x9, x8
+; CHECK: lsr x15, x8, #4
; CHECK: mov x19, x1
-; CHECK: mov x23, sp
+; CHECK: mov [[REG2:x[0-9]+]], sp
; CHECK: stp x6, x7, [x29, #48]
; CHECK: stp x4, x5, [x29, #32]
; CHECK: stp x2, x3, [x29, #16]
-; CHECK: mov sp, x20
-; CHECK: ldur x21, [x29, #-40]
-; CHECK: sxtw x22, w0
+; CHECK: bl __chkstk
+; CHECK: mov x8, sp
+; CHECK: sub [[REG:x[0-9]+]], x8, x15, lsl #4
+; CHECK: mov sp, [[REG]]
+; CHECK: ldur [[REG3:x[0-9]+]], [x29, #-40]
+; CHECK: sxtw [[REG4:x[0-9]+]], w0
; CHECK: bl __local_stdio_printf_options
; CHECK: ldr x8, [x0]
-; CHECK: mov x1, x20
-; CHECK: mov x2, x22
+; CHECK: mov x1, [[REG]]
+; CHECK: mov x2, [[REG4]]
; CHECK: mov x3, x19
; CHECK: orr x0, x8, #0x2
; CHECK: mov x4, xzr
-; CHECK: mov x5, x21
+; CHECK: mov x5, [[REG3]]
; CHECK: bl __stdio_common_vsprintf
-; CHECK: mov sp, x23
+; CHECK: mov sp, [[REG2]]
; CHECK: sub sp, x29, #48
; CHECK: ldp x29, x30, [sp, #48]
; CHECK: ldp x20, x19, [sp, #32]
@@ -255,17 +256,15 @@ define i32 @snprintf(i8*, i64, i8*, ...) local_unnamed_addr #5 {
; CHECK-LABEL: fixed_params
; CHECK: sub sp, sp, #32
-; CHECK: mov w8, w3
-; CHECK: mov w9, w2
-; CHECK: mov w10, w1
+; CHECK-DAG: mov w6, w3
+; CHECK-DAG: mov [[REG1:w[0-9]+]], w2
+; CHECK: mov w2, w1
; CHECK: str w4, [sp]
; CHECK: fmov x1, d0
; CHECK: fmov x3, d1
; CHECK: fmov x5, d2
; CHECK: fmov x7, d3
-; CHECK: mov w2, w10
-; CHECK: mov w4, w9
-; CHECK: mov w6, w8
+; CHECK: mov w4, [[REG1]]
; CHECK: str x30, [sp, #16]
; CHECK: str d4, [sp, #8]
; CHECK: bl varargs