; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
; RUN: llc < %s | FileCheck %s
target triple = "x86_64-linux-gnux32"
define i32 @foo() {
; CHECK-LABEL: foo:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: pushq %rbp
; CHECK-NEXT: .cfi_def_cfa_offset 16
; CHECK-NEXT: .cfi_offset %rbp, -16
; CHECK-NEXT: movq %rsp, %rbp
; CHECK-NEXT: .cfi_def_cfa_register %rbp
; CHECK-NEXT: subq $16, %rsp
; CHECK-NEXT: movl $4, -8(%rbp)
; CHECK-NEXT: movl $5, -4(%rbp)
; CHECK-NEXT: movl -8(%rbp), %eax
; CHECK-NEXT: movq %rsp, %rcx
; CHECK-NEXT: addq $15, %rax
; CHECK-NEXT: andq $-16, %rax
; CHECK-NEXT: movq %rcx, %rdx
; CHECK-NEXT: subq %rax, %rdx
; CHECK-NEXT: movq %rdx, %rsp
; CHECK-NEXT: negq %rax
; CHECK-NEXT: movl $1, (%rcx,%rax)
; CHECK-NEXT: pushq %rbp
; CHECK-NEXT: pushq %rax
; CHECK-NEXT: .cfi_remember_state
; CHECK-NEXT: .cfi_escape 0x0f, 0x06, 0x77, 0x08, 0x06, 0x11, 0x10, 0x22 #
; CHECK-NEXT: movl $123, %ebp
; CHECK-NEXT: #APP
; CHECK-NEXT: nop
; CHECK-NEXT: #NO_APP
; CHECK-NEXT: addq $8, %rsp
; CHECK-NEXT: popq %rbp
; CHECK-NEXT: .cfi_restore_state
; CHECK-NEXT: movl -4(%rbp), %eax
; CHECK-NEXT: movq %rbp, %rsp
; CHECK-NEXT: popq %rbp
; CHECK-NEXT: .cfi_def_cfa %rsp, 8
; CHECK-NEXT: retq
entry:
%size = alloca i32, align 4
%g = alloca i32, align 4
store volatile i32 4, ptr %size, align 4
store volatile i32 5, ptr %g, align 4
%len = load volatile i32, ptr %size, align 4
%var_array = alloca i8, i32 %len, align 16
store i32 1, ptr %var_array, align 16
call void asm "nop", "{ebp},~{memory}"(i32 123)
%retval = load i32, ptr %g, align 4
ret i32 %retval
}