[llvm-commits] [llvm-testresults] buildbot failure in The LLVM Compiler Infrastructure on full-llvm-OSX

David Greene dag at cray.com
Wed May 6 09:01:58 PDT 2009


On Tuesday 05 May 2009 15:44, Bill Wendling wrote:
> David,
>
> Your recent check-in r71008 is causing this failure. Please investigate:
>
> Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/
> CodeGen/X86/dg.exp ...
> FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/
> CodeGen/X86/change-compare-stride-1.ll
> Failed with exit(1) at line 2
> while running: grep {cmpq	$-478,} change-compare-stride-1.ll.tmp
> child process exited abnormally

This seems to be a bug in APInt.  From LoopStrengthReduce.cpp:

      Scale = SSInt / CmpSSInt;
      int64_t NewCmpVal = CmpVal * Scale;
      APInt Mul = APInt(BitWidth*2, CmpVal);
      Mul = Mul * APInt(BitWidth*2, Scale);
      // Check for overflow.
      if (!Mul.isSignedIntN(BitWidth))

(gdb) print SSInt
$30 = -478
(gdb) print CmpSSInt
$31 = 1
(gdb) print NewCmpVal
$32 = -304964
(gdb) p/x Mul.pVal[0]
$34 = 0xfffffffffffb58bc
(gdb) p/x Mul.pVal[1]
$35 = 0x27d
(gdb) print Mul.isNegative()
$36 = false

So yeah, the code isn't going to work if APInt doesn't handle signed multiply 
correctly.  Who's the APInt master these days?

                            -Dave



More information about the llvm-commits mailing list