Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / X86 / inline-asm-stack-realign3.ll
blob58b4f1f313fba2ecec8a394d9f61b297180c75b0
1 ; RUN: llc -mtriple=i686-- -no-integrated-as < %s | FileCheck %s
3 declare void @bar(ptr %junk)
5 define i32 @foo(i1 %cond) {
6 entry:
7   %r = alloca i32, align 128
8   store i32 -1, ptr %r, align 128
9   br i1 %cond, label %doit, label %skip
11 doit:
12   call void asm sideeffect "xor %ecx, %ecx\0A\09mov %ecx, $0", "=*m,~{ecx},~{flags}"(ptr elementtype(i32) %r)
13   %junk = alloca i32
14   call void @bar(ptr %junk)
15   br label %skip
17 skip:
18   %0 = load i32, ptr %r, align 128
19   ret i32 %0
22 ; CHECK-LABEL: foo:
23 ; CHECK: pushl %ebp
24 ; CHECK: andl $-128, %esp
25 ; CHECK: xor %ecx, %ecx
26 ; CHECK-NEXT: mov %ecx, (%esi)
27 ; CHECK: movl (%esi), %eax
28 ; CHECK: popl %ebp
29 ; CHECK: ret