Enable all Hexagon tests.
[oota-llvm.git] / test / CodeGen / X86 / test-nofold.ll
index 7ee8eb0b9c2fe6f3ae1d454c39be9d40f17ecc09..97db1b340e81c230d63d73ca967093367d28e6ae 100644 (file)
@@ -1,23 +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
-; XFAIL: *
 
-; 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     $42, %ecx
+; CHECK-NEXT: movl     4(%esp), %eax
+; CHECK-NEXT: andl     $15, %eax
+; CHECK-NEXT: cmovnel  %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  {