Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s
      2 ; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s
      3 
      4 ; CodeGen should remat the zero instead of spilling it.
      5 
      6 declare void @foo(i64 %p)
      7 
      8 ; CHECK-LABEL: bar:
      9 ; CHECK: xorl %e[[A0:di|cx]], %e
     10 ; CHECK: xorl %e[[A0]], %e[[A0]]
     11 define void @bar() nounwind {
     12   call void @foo(i64 0)
     13   call void @foo(i64 0)
     14   ret void
     15 }
     16 
     17 ; CHECK-LABEL: bat:
     18 ; CHECK: movq $-1, %r[[A0]]
     19 ; CHECK: movq $-1, %r[[A0]]
     20 define void @bat() nounwind {
     21   call void @foo(i64 -1)
     22   call void @foo(i64 -1)
     23   ret void
     24 }
     25 
     26 ; CHECK-LABEL: bau:
     27 ; CHECK: movl $1, %e[[A0]]
     28 ; CHECK: movl $1, %e[[A0]]
     29 define void @bau() nounwind {
     30   call void @foo(i64 1)
     31   call void @foo(i64 1)
     32   ret void
     33 }
     34 
     35