+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=x86_64-apple-macosx | FileCheck %s
; Cmp lowering should not look past the truncate unless the high bits are known
; rdar://12027825
define void @foo(i8 %arg4, i32 %arg5, i32* %arg14) nounwind {
-bb:
; CHECK-LABEL: foo:
-; CHECK-NOT: testl
-; CHECK: testb
+; CHECK: ## %bb.0: ## %bb
+; CHECK-NEXT: andl $32, %edi
+; CHECK-NEXT: orl $1601159181, %edi ## imm = 0x5F6FC00D
+; CHECK-NEXT: andl %edi, %esi
+; CHECK-NEXT: xorb $-14, %dil
+; CHECK-NEXT: addb $82, %dil
+; CHECK-NEXT: shrl $5, %esi
+; CHECK-NEXT: movzbl %dil, %eax
+; CHECK-NEXT: testb %sil, %sil
+; CHECK-NEXT: movl $1, %ecx
+; CHECK-NEXT: cmovnel %eax, %ecx
+; CHECK-NEXT: xorb $81, %cl
+; CHECK-NEXT: movzbl %cl, %eax
+; CHECK-NEXT: addl $2062143348, %eax ## imm = 0x7AE9CF74
+; CHECK-NEXT: movl %eax, (%rdx)
+; CHECK-NEXT: retq
+bb:
%tmp48 = zext i8 %arg4 to i32
%tmp49 = and i32 %tmp48, 32
%tmp50 = add i32 %tmp49, 1593371643