Home | History | Annotate | Download | only in X86
      1 ; RUN: llc -march=x86 -no-integrated-as < %s | FileCheck %s
      2 
      3 declare void @bar(i32* %junk)
      4 
      5 define i32 @foo(i1 %cond) {
      6 entry:
      7   %r = alloca i32, align 128
      8   store i32 -1, i32* %r, align 128
      9   br i1 %cond, label %doit, label %skip
     10 
     11 doit:
     12   call void asm sideeffect "xor %ecx, %ecx\0A\09mov %ecx, $0", "=*m,~{ecx},~{flags}"(i32* %r)
     13   %junk = alloca i32
     14   call void @bar(i32* %junk)
     15   br label %skip
     16 
     17 skip:
     18   %0 = load i32, i32* %r, align 128
     19   ret i32 %0
     20 }
     21 
     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
     30