mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
Fix a codegen abort seen in 483.xalancbmk.
llvm-svn: 93417
This commit is contained in:
parent
71b4e96580
commit
7c596d2b00
@ -1684,6 +1684,9 @@ SDValue DAGCombiner::SimplifyBinOpWithSameOpcodeHands(SDNode *N) {
|
||||
EVT VT = N0.getValueType();
|
||||
assert(N0.getOpcode() == N1.getOpcode() && "Bad input!");
|
||||
|
||||
// Bail early if none of these transforms apply.
|
||||
if (N0.getNode()->getNumOperands() == 0) return SDValue();
|
||||
|
||||
// For each of OP in AND/OR/XOR:
|
||||
// fold (OP (zext x), (zext y)) -> (zext (OP x, y))
|
||||
// fold (OP (sext x), (sext y)) -> (sext (OP x, y))
|
||||
|
20
test/CodeGen/X86/br-fold.ll
Normal file
20
test/CodeGen/X86/br-fold.ll
Normal file
@ -0,0 +1,20 @@
|
||||
; RUN: llc -march=x86-64 < %s | FileCheck %s
|
||||
|
||||
; CHECK: orq
|
||||
; CHECK-NEXT: jne
|
||||
|
||||
@_ZN11xercesc_2_513SchemaSymbols21fgURI_SCHEMAFORSCHEMAE = external constant [33 x i16], align 32 ; <[33 x i16]*> [#uses=1]
|
||||
@_ZN11xercesc_2_56XMLUni16fgNotationStringE = external constant [9 x i16], align 16 ; <[9 x i16]*> [#uses=1]
|
||||
|
||||
define fastcc void @foo() {
|
||||
entry:
|
||||
br i1 icmp eq (i64 or (i64 ptrtoint ([33 x i16]* @_ZN11xercesc_2_513SchemaSymbols21fgURI_SCHEMAFORSCHEMAE to i64),
|
||||
i64 ptrtoint ([9 x i16]* @_ZN11xercesc_2_56XMLUni16fgNotationStringE to i64)), i64 0),
|
||||
label %bb8.i329, label %bb4.i.i318.preheader
|
||||
|
||||
bb4.i.i318.preheader: ; preds = %bb6
|
||||
unreachable
|
||||
|
||||
bb8.i329: ; preds = %bb6
|
||||
unreachable
|
||||
}
|
Loading…
Reference in New Issue
Block a user