diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2012-01-11 12:17:47 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2012-01-11 12:17:47 +0000 |
commit | 9bc48e521518407efb7910ac81be022cf66c91f6 (patch) | |
tree | 9e6b69d5435c666ec1868c883ef106b21d48713b /llvm | |
parent | 48af2a9e662f0d7ad0b6faa5cc9b25365cb21197 (diff) | |
download | bcm5719-llvm-9bc48e521518407efb7910ac81be022cf66c91f6.tar.gz bcm5719-llvm-9bc48e521518407efb7910ac81be022cf66c91f6.zip |
Disable the transformation I added in r147936 to see if it fixes some
strange build bot failures that look like a miscompile into an infloop.
I'll investigate this tomorrow, but I'd both like to know whether my
patch is the culprit, and get the bots back to green.
llvm-svn: 147945
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 4 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/fold-and-shift.ll | 20 |
2 files changed, 14 insertions, 10 deletions
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp index 441267a2a4d..b155f742d64 100644 --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -847,6 +847,10 @@ static bool FoldMaskAndShiftToScale(SelectionDAG &DAG, SDValue N, uint64_t Mask, SDValue Shift, SDValue X, X86ISelAddressMode &AM) { + // FIXME!! Hack to disable this and see if it is responsible for a miscompile + // on llvm-gcc's selfhost. + return true; + if (Shift.getOpcode() != ISD::SRL || !Shift.hasOneUse() || !isa<ConstantSDNode>(Shift.getOperand(1))) return true; diff --git a/llvm/test/CodeGen/X86/fold-and-shift.ll b/llvm/test/CodeGen/X86/fold-and-shift.ll index 93baa0e0eee..816ab97e31b 100644 --- a/llvm/test/CodeGen/X86/fold-and-shift.ll +++ b/llvm/test/CodeGen/X86/fold-and-shift.ll @@ -39,11 +39,11 @@ define i32 @t3(i16* %i.ptr, i32* %arr) { ; To make matters worse, because of the two-phase zext of %i and their reuse in ; the function, the DAG can get confusing trying to re-use both of them and ; prevent easy analysis of the mask in order to match this. -; CHECK: t3: -; CHECK-NOT: and -; CHECK: shrl -; CHECK: addl (%{{...}},%{{...}},4), -; CHECK: ret +; BROKEN: t3: +; BROKEN-NOT: and +; BROKEN: shrl +; BROKEN: addl (%{{...}},%{{...}},4), +; BROKEN: ret entry: %i = load i16* %i.ptr @@ -58,11 +58,11 @@ entry: define i32 @t4(i16* %i.ptr, i32* %arr) { ; A version of @t3 that has more zero extends and more re-use of intermediate ; values. This exercise slightly different bits of canonicalization. -; CHECK: t4: -; CHECK-NOT: and -; CHECK: shrl -; CHECK: addl (%{{...}},%{{...}},4), -; CHECK: ret +; BROKEN: t4: +; BROKEN-NOT: and +; BROKEN: shrl +; BROKEN: addl (%{{...}},%{{...}},4), +; BROKEN: ret entry: %i = load i16* %i.ptr |