|  | ; RUN: llc < %s -mtriple=x86_64-apple-macosx  | FileCheck %s | 
|  | ; This is supposed to be testing BranchFolding's common | 
|  | ; code hoisting logic, but has been erroneously passing due | 
|  | ; to there being a redundant xorl in the entry block | 
|  | ; and no common code to hoist. | 
|  | ; However, now that MachineSink sinks the redundant xor | 
|  | ; hoist-common looks at it and rejects it for hoisting, | 
|  | ; which causes this test to fail. | 
|  | ; Since it seems this test is broken, marking XFAIL for now | 
|  | ; until someone decides to remove it or fix what it tests. | 
|  | ; XFAIL: * | 
|  |  | 
|  | ; Common "xorb al, al" instruction in the two successor blocks should be | 
|  | ; moved to the entry block above the test + je. | 
|  |  | 
|  | ; rdar://9145558 | 
|  |  | 
|  | define zeroext i1 @t(i32 %c) nounwind ssp { | 
|  | entry: | 
|  | ; CHECK-LABEL: t: | 
|  | ; CHECK: xorl %eax, %eax | 
|  | ; CHECK: test | 
|  | ; CHECK: je | 
|  | %tobool = icmp eq i32 %c, 0 | 
|  | br i1 %tobool, label %return, label %if.then | 
|  |  | 
|  | if.then: | 
|  | ; CHECK: callq | 
|  | %call = tail call zeroext i1 (...) @foo() nounwind | 
|  | br label %return | 
|  |  | 
|  | return: | 
|  | ; CHECK: ret | 
|  | %retval.0 = phi i1 [ %call, %if.then ], [ false, %entry ] | 
|  | ret i1 %retval.0 | 
|  | } | 
|  |  | 
|  | declare zeroext i1 @foo(...) |