[WinEH] Only generate UnwindHelp slot for MSVCXX
[oota-llvm.git] / test / CodeGen / X86 / test-nofold.ll
index a24a9a0940a0eb0f8d662705c07e09fa549693ed..19fbaafc194f4f8d01fadb47c16cf2f29384b50b 100644 (file)
@@ -1,22 +1,35 @@
-; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah | grep {testl.*%e.x.*%e.x}
+; RUN: llc < %s -march=x86 -mcpu=yonah | FileCheck %s
 ; rdar://5752025
 
-; We don't want to fold the and into the test, because the and clobbers its
-; input forcing a copy.  We want:
-;      movl    $15, %ecx
+; We want:
+;      CHECK: movl     4(%esp), %ecx
+; CHECK-NEXT: andl     $15, %ecx
+; CHECK-NEXT: movl     $42, %eax
+; CHECK-NEXT: cmovel   %ecx, %eax
+; CHECK-NEXT: ret
+;
+; We don't want:
+;      movl    4(%esp), %eax
+;      movl    %eax, %ecx     # bad: extra copy
+;      andl    $15, %ecx
+;      testl   $15, %eax      # bad: peep obstructed
+;      movl    $42, %eax
+;      cmovel  %ecx, %eax
+;      ret
+;
+; We also don't want:
+;      movl    $15, %ecx      # bad: larger encoding
 ;      andl    4(%esp), %ecx
-;      testl   %ecx, %ecx
 ;      movl    $42, %eax
-;      cmove   %ecx, %eax
+;      cmovel  %ecx, %eax
 ;      ret
 ;
-; Not:
-;      movl    4(%esp), %eax
-;      movl    %eax, %ecx
+; We also don't want:
+;      movl    4(%esp), %ecx
 ;      andl    $15, %ecx
-;      testl   $15, %eax
+;      testl   %ecx, %ecx     # bad: unnecessary test
 ;      movl    $42, %eax
-;      cmove   %ecx, %eax
+;      cmovel  %ecx, %eax
 ;      ret
 
 define i32 @t1(i32 %X) nounwind  {
@@ -26,4 +39,3 @@ entry:
        %retval = select i1 %tmp4, i32 %tmp2, i32 42            ; <i32> [#uses=1]
        ret i32 %retval
 }
-